{"id":5284,"date":"2026-02-25T07:19:29","date_gmt":"2026-02-24T22:19:29","guid":{"rendered":"https:\/\/matoken.org\/blog\/?p=5284"},"modified":"2026-02-25T07:19:31","modified_gmt":"2026-02-24T22:19:31","slug":"changedetection-io","status":"publish","type":"post","link":"https:\/\/matoken.org\/blog\/2026\/02\/25\/changedetection-io\/","title":{"rendered":"ChangeDetection.io\u3092\u66f4\u65b0\u3057\u305f\u3089\u30d7\u30e9\u30a4\u30d9\u30fc\u30c8IP\u3092\u5229\u7528\u3057\u305fURL\u304c\u30a8\u30e9\u30fc\u306b\u306a\u308b"},"content":{"rendered":"<div id=\"preamble\">\n<div class=\"sectionbody\">\n<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"48\" height=\"48\" viewBox=\"0 0 12 12\"><path fill=\"currentColor\" d=\"M4 6H3v1H1v1h2v1h1Zm0 0h3V5h1V4H6v1H5V4H3v1h1Zm-4 4h1V8H0Zm2 2h1V9H2Zm2-2h3V9H4ZM1 6h2V5H1ZM0 5h1V3H0Zm8 7h1V9H8ZM2 4h1V1H2Zm5 5h1V8h2V7H8V6H7Zm3 1h1V8h-1ZM5 4h1V3H5Zm3 2h2V5H8Zm0-2h1V1H8Zm2 1h1V3h-1Zm0 0\"\/><\/svg><!-- icon-sets.iconify.design : dinkie-icons:spider --><\/p>\n<div class=\"paragraph\">\n<p>ChangeDetection.io \u3092\u66f4\u65b0\u3057\u305f\u3089\u30eb\u30fc\u30bf\u30fc\u306e\u30a2\u30c9\u30ec\u30b9\u304c\u30a8\u30e9\u30fc\u306b\u306a\u3063\u3066\u3057\u307e\u3044\u307e\u3057\u305f\uff0e<\/p>\n<\/div>\n<p><!--more--><\/p>\n<div class=\"paragraph\">\n<p>ChangeDetection.io \u306f\u306f\u3066\u306a\u30a2\u30f3\u30c6\u30ca\u306e\u3088\u3046\u306b\u767b\u9332\u30b5\u30a4\u30c8\u3092\u5b9a\u671f\u7684\u306b\u5de1\u56de\u3057\u3066\u66f4\u65b0\u3092\u6559\u3048\u3066\u304f\u308c\u308b\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u304a\u3088\u3073\u30b5\u30fc\u30d3\u30b9\u3067\u3059\uff0e<br \/>\n\u81ea\u5206\u306f\u30ed\u30fc\u30ab\u30ebPC \u306b\u5165\u308c\u3066\u52d5\u304b\u3057\u3066\u3044\u307e\u3059\uff0e<\/p>\n<\/div>\n<div class=\"ulist\">\n<ul>\n<li>\n<p><a href=\"https:\/\/github.com\/dgtlmoon\/changedetection.io\">dgtlmoon\/changedetection.io: Best and simplest tool for website change detection, web page monitoring, and website change alerts. Perfect for tracking content changes, price drops, restock alerts, and website defacement monitoring\u2014all for free or enjoy our SaaS plan!<\/a><\/p>\n<\/li>\n<\/ul>\n<\/div>\n<div class=\"paragraph\">\n<p><a href=\"https:\/\/kagolug.connpass.com\/event\/346277\/\">#kagolug 2025.03<\/a> \u3067\u767a\u8868\u3057\u305f\u3068\u304d\u306e\u8cc7\u6599\u306f\u3053\u3061\u3089\uff0e<\/p>\n<\/div>\n<div class=\"ulist\">\n<ul>\n<li>\n<p><a href=\"https:\/\/codeberg.org\/matoken\/kagolug-2025.03\/src\/branch\/main\/slide\/slide.adoc\">ChangeDetection.io\u3067\u30a6\u30a7\u30d6\u30da\u30fc\u30b8\u3092\u5b9a\u671f\u30c1\u30a7\u30c3\u30af<\/a><\/p>\n<\/li>\n<\/ul>\n<\/div>\n<div class=\"paragraph\">\n<p>\u4eca\u56de\u66f4\u65b0\u901a\u77e5\u304c\u6765\u3066\u3044\u305f\u306e\u3067\u6700\u65b0\u306b\u66f4\u65b0\u3057\u307e\u3057\u305f\uff0ev0.54.1 \u306b\u306a\u308a\u307e\u3057\u305f\uff0e<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre>$ w3m -dump http:\/\/100.121.84.16:5000\/ | grep ^v\nv0.54.1<\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>\u3059\u308b\u3068router \u306e\u8a2d\u5b9a\u304c\u4ee5\u4e0b\u306e\u3088\u3046\u306a\u30a8\u30e9\u30fc\u306b\u306a\u3063\u3066\u30ed\u30b0\u304c\u53d6\u308c\u306a\u304f\u306a\u3063\u3066\u3044\u307e\u3059\uff0e<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre> &gt; DISABLED\n&gt; Exception: Invalid URL 'DISABLED': No scheme supplied. Perhaps you meant https:\/\/DISABLED?\n[Create a link to share watch config with others]<\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p><span class=\"image\"><img decoding=\"async\" src=\"https:\/\/matoken.org\/blog\/wp-content\/uploads\/2026\/02\/changedetection.io-Invalid_URL.webp\" alt=\"changedetection.io Invalid URL\"><\/span><\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>Edit \u30dc\u30bf\u30f3\u3092\u62bc\u3057\u3066\u7de8\u96c6\u753b\u9762\u306b\u9077\u79fb\u3059\u308b\u3068\u554f\u984c\u306a\u3055\u305d\u3046\uff0e\u3067\u3082\u4e0a\u66f8\u304d\u4fdd\u5b58\u3057\u3088\u3046\u3068\u3057\u305f\u3089\u6012\u3089\u308c\u307e\u3059\uff0e<br \/>\n\u30a8\u30e9\u30fc\u30e1\u30c3\u30bb\u30fc\u30b8\u304b\u3089\u306fURL \u304c\u304a\u304b\u3057\u305d\u3046\u3067\u3059\u304c\uff0c\u3053\u306eURL \u306f\u666e\u901a\u306b\u958b\u3051\u308b\u3057\u305d\u3082\u305d\u3082\u30d0\u30fc\u30b8\u30e7\u30f3\u30a2\u30c3\u30d7\u307e\u3067\u306f\u52d5\u3044\u3066\u3044\u305f\u3082\u306e\u3067\u3059\uff0e<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre>* Watch protocol is not permitted or invalid URL format<\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p><span class=\"image\"><img decoding=\"async\" src=\"https:\/\/matoken.org\/blog\/wp-content\/uploads\/2026\/02\/changedetection.io-edit_invalid_URL.webp\" alt=\"changedetection.io edit invalid URL\"><\/span><\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\u306a\u3093\u304b\u30d0\u30b0\u8e0f\u3093\u3060?\u524d\u30d0\u30fc\u30b8\u30e7\u30f3\u304b\u3089\u4eca\u56de\u307e\u3067\u306ediff \u898b\u308b\u304b\u2026\u2026\u3068\u601d\u3063\u305f\u306e\u3067\u3059\u304c\uff0cSSRF \u5bfe\u7b56\u3067\u30d7\u30e9\u30a4\u30d9\u30fc\u30c8IP \u304c\u7121\u52b9\u306b\u3055\u308c\u308b\u3088\u3046\u306b\u306a\u3063\u305f\u3088\u3046\u3067\u3059\uff0e<\/p>\n<\/div>\n<div class=\"quoteblock\">\n<blockquote>\n<div class=\"ulist\">\n<ul>\n<li>\n<p>CVE-2026-27696 &#8211; Server-Side Request Forgery (SSRF) via Watch URLs, set env var ALLOW_IANA_RESTRICTED_ADDRESSES to true to access IANA reserved URLs such as <a href=\"http:\/\/169.254.169.254\" class=\"bare\">http:\/\/169.254.169.254<\/a>, <a href=\"http:\/\/10.0.0.1\/\" class=\"bare\">http:\/\/10.0.0.1\/<\/a>, <a href=\"http:\/\/127.0.0.1\/\" class=\"bare\">http:\/\/127.0.0.1\/<\/a>, etc.<\/p>\n<\/li>\n<\/ul>\n<\/div>\n<\/blockquote>\n<div class=\"attribution\">\n&#8212; <a href=\"https:\/\/github.com\/dgtlmoon\/changedetection.io\/releases\/tag\/0.54.1\">Release 0.54.1 \u00b7 dgtlmoon\/changedetection.io<\/a>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p><a href=\"https:\/\/github.com\/dgtlmoon\/changedetection.io\/compare\/0.53.7&#8230;&#8203;0.54.1#diff-3ab00b8859be47b3f012b2ce0d37eb12c84daa2ca230f17add64d5969c30b6e2R607\">\u5dee\u5206\u3092\u898b\u308b\u3068IPv6 \u306eloopback \u3084local \u3082\u5bfe\u8c61\u306e\u3088\u3046\u3067\u3059\uff0e<\/a><\/p>\n<\/div>\n<div class=\"paragraph\">\n<p><code>ALLOW_IANA_RESTRICTED_ADDRESSES=true<\/code> \u3067\u9003\u3052\u3089\u308c\u308b\u3088\u3046\u306a\u306e\u3067\u8a2d\u5b9a\u3057\u3066\u307f\u307e\u3059\uff0e<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>docker-compose \u3067\u904b\u7528\u3057\u3066\u3044\u308b\u306e\u3067\uff0cdocker-compose.yml \u3092\u958b\u304d\uff0c<code>changedetection<\/code> \u90e8\u5206\u306e <code>environment:<\/code> \u306b <code>ALLOW_IANA_RESTRICTED_ADDRESSES=true<\/code> \u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f\uff0e\u305d\u3057\u3066up \u3059\u308b\u3053\u3068\u3067\u30d7\u30e9\u30a4\u30d9\u30fc\u30c8IP \u30a2\u30c9\u30ec\u30b9\u306eURL \u3082\u307e\u305f\u52d5\u4f5c\u3059\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3057\u305f\uff0e<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre>$ docker compose --file ~\/src\/changedetection.io\/docker-compose.yml up -d<\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>\u3053\u308c\u3053\u306e\u30a2\u30c9\u30ec\u30b9\u3060\u3051\u8a31\u53ef\u306e\u3088\u3046\u306a\u8a2d\u5b9a\u3082\u3067\u304d\u308b\u3068\u826f\u3055\u305d\u3046\u3067\u3059\u306d\uff0e<\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"sect2\">\n<h3 id=\"_\u74b0\u5883\">\u74b0\u5883<\/h3>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre>$ docker images ghcr.io\/dgtlmoon\/changedetection.io:latest\n                                                                                                                                                                   i Info     U  In Use\nIMAGE                                        ID             DISK USAGE   CONTENT SIZE   EXTRA\nghcr.io\/dgtlmoon\/changedetection.io:latest   cf4a98d2a980        889MB             0B    U\n$ w3m http:\/\/127.0.0.1:5000\/ | grep ^v\nv0.54.1\n$ dpkg-query -W docker.io docker-compose-plugin\ndocker-compose-plugin   5.1.0-1~debian.12~bookworm\ndocker.io       26.1.5+dfsg1-4+b1\n$ lsb_release -dr\nDescription:    Debian GNU\/Linux forky\/sid\nRelease:        n\/a\n$ arch\nx86_64<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"sect2\">\n<h3 id=\"_toot\">toot<\/h3>\n<div class=\"ulist\">\n<ul>\n<li>\n<p><a href=\"https:\/\/inari.opencocon.org\/deck\/@matoken\/116125125048884446\">matoken :fox:: &#8220;ChangeDetection.io \u3092\u66f4\u65b0 v0.54.1\u2026&#8221; &#8211; \u3044\u306a\u3053\u3093<\/a><\/p>\n<\/li>\n<\/ul>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>ChangeDetection.io \u3092\u66f4\u65b0\u3057\u305f\u3089\u30eb\u30fc\u30bf\u30fc\u306e\u30a2\u30c9\u30ec\u30b9\u304c\u30a8\u30e9\u30fc\u306b\u306a\u3063\u3066\u3057\u307e\u3044\u307e\u3057\u305f\uff0e<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"webmentions_disabled_pings":false,"webmentions_disabled":false,"activitypub_content_warning":"","activitypub_content_visibility":"","activitypub_max_image_attachments":4,"activitypub_interaction_policy_quote":"anyone","activitypub_status":"federated","footnotes":""},"categories":[7,6,199],"tags":[1268],"class_list":["post-5284","post","type-post","status-publish","format-standard","hentry","category-debian-linux","category-linux","category-sid","tag-changedetection-io"],"_links":{"self":[{"href":"https:\/\/matoken.org\/blog\/wp-json\/wp\/v2\/posts\/5284","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/matoken.org\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/matoken.org\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/matoken.org\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/matoken.org\/blog\/wp-json\/wp\/v2\/comments?post=5284"}],"version-history":[{"count":3,"href":"https:\/\/matoken.org\/blog\/wp-json\/wp\/v2\/posts\/5284\/revisions"}],"predecessor-version":[{"id":5287,"href":"https:\/\/matoken.org\/blog\/wp-json\/wp\/v2\/posts\/5284\/revisions\/5287"}],"wp:attachment":[{"href":"https:\/\/matoken.org\/blog\/wp-json\/wp\/v2\/media?parent=5284"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/matoken.org\/blog\/wp-json\/wp\/v2\/categories?post=5284"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/matoken.org\/blog\/wp-json\/wp\/v2\/tags?post=5284"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}