Archive for the ‘デッドリンクチェッカー’ Category

デッドリンクチェッカーのXSS対策(配布再開)

取り急ぎのバージョン0.3bにも残存していたXSSの脆弱性は、PHPによるコード出力を廃止することで対策しました。
度重なるYuriko様のご指摘に助けられた反面、さらに慎重を期すためWORDPRESSフォーラムへの報告は、しばらく見送ります。

修正内容は、細かな機能アップも含めて主に次の5点です。

  • PHPによるコード出力を廃止
  • リンク先がfeed等のXMLの場合、その内容のチェックは見送る
  • チェック対象外URLに”wp-login.php”を追加(この対策によりチェック後の管理画面ログアウトを回避)
  • チェック中を示す「Checking …」のロジック見直し(カウンターのインクリメント箇所が正しくなかったため、フリーズしたように見えてしまっていたことへの対策)
  • チェック済み/チェック合計数、開始/終了時刻の表示

使い方

  1. dead-link-checker.0.4b.zipをダウンロード
    (最新版はhttp://typista.xii.jp/wp-content/uploads/dead-link-checker.zip)
  2. プラグインディレクトリに解凍
  3. ダッシュボードからアクティベート
  4. リンクチェックの実行は、「ダッシュボード」→「設定」→「Dead Link Checker Plugin」→「start」ボタン。

以上で、bloginfo(“url”)からリンクを辿り、リンクチェックを開始します。中断も可能です。
正常なページは、一覧から消えていき、エラーの場合は、HTTPステータスコードとそのリンクを含むURL(非同期の複数コネクション実行のため、最新1つで上書き)も表示します。

制限事項

「はてなブックマーク」への追加リンク、W3CのHTML Validatorへのリンクなどで400または404エラーとなります。原因調査中ですが、当デッドリンクチェッカーでエラー検知されたURLは、手動にて確認されるようお願いいたします。
また、現状ではハイパーリンクのみの抽出のため、JSやCSSは対象外です。

今後の対応

大きな機能追加要件として、被リンクゼロチェック機能、つまりどこからもリンクされていない画像等を抽出する機能を想定しています。が、これはかなり難航するかも知れません。
小粒要件としては、JSやCSSのデッドリンクチェックへの対応です。formへの対応は決めかねています。
その他、チェック結果表示のポップアップウィンドウ化 or iframe化や体裁、それらのオプション設定などなどです。

デッドリンクチェッカーのXSS対策(β版)

XSS対策を施しましたので、配布を再開します。

取り急ぎのバージョン0.2、0.3、0.3bにもXSSの脆弱性が残存していました。
Yuriko様から再びのご指摘をいただき、修正しました。

修正内容は、主に次の3点です。

  • get_file_contents()はphp.iniの設定に依存するため、fsockopen()に変更
  • HTTPステータスコードが301と302のときは、リダイレクト先をチェック(fsockopenの影響で必要になった処理)
  • 明らかに自ドメインの場合のみ取得ソースをecho(入力パラメータ$urlが”/”を含まない場合、末尾に付加)

なお、このバージョン0.3bでは、feed等のXMLを対象としたリンクチェックが不完全な状態です。この不具合よりも、XSS対策版を優先すべきという観点で、リリースさせていただきます。

使い方

  1. dead-link-checker.0.3b.zipをダウンロード
    (最新版はhttp://typista.xii.jp/wp-content/uploads/dead-link-checker.zip)
  2. プラグインディレクトリに解凍
  3. ダッシュボードからアクティベート
  4. リンクチェックの実行は、「ダッシュボード」→「設定」→「Dead Link Checker Plugin」→「start」ボタン。

以上で、bloginfo(“url”)からリンクを辿り、リンクチェックを開始します。中断も可能です。
正常なページは、一覧から消えていき、エラーの場合は、HTTPステータスコードとそのリンクを含むURL(非同期の複数コネクション実行のため、最新1つで上書き)も表示します。

制限事項

前述のとおり、本バージョンでは、feed等のチェックが不完全です。この不完全ですが、JavaScriptエラーで処理が中断してしまいますので、同時セッション数は、3以上が良いかも知れません。(自サイトのチェックの場合、feedとatomの2つでセッション中断で以降のチェックが進みません。)前バージョンでは正しくチェックされていた(と思われます)ので、今回の処理変更との影響を調査中です。
しばらくお待ちください。
jQuery(JavaScript)を利用したチェックのため、このプラグインでのエラー検知が万全ではないようです。
これは、(予想の域を越えませんが)jQuery、というよりJavaScript(?)では、クロスドメインでのHTTP通信不可のため、擬似的にサーバサイドで回避(*1)しています。この対処(出力)が万全でないのかも知れません。
また、現状ではハイパーリンクのみの抽出のため、JSやCSSは対象外です。

今後の対応

大きな機能追加要件として、被リンクゼロチェック機能、つまりどこからもリンクされていない画像等を抽出する機能を想定しています。が、これはかなり難航するかも知れません。
小粒要件としては、JSやCSSのデッドリンクチェックへの対応です。formへの対応は決めかねています。
その他、チェック結果表示のポップアップウィンドウ化 or iframe化や体裁、それらのオプション設定などなどです。

デッドリンクチェッカープラグイン

XSS対策を施しましたので、配布を再開します。

jQueryの勉強も兼ねて、デッドリンクチェッカーを作りました。ハイパーリンクであれば、画像も対象です。非同期通信で、同時接続数はチューニング可能にしています。(デフォルト値は2)
クライアントはもちろん、サーバにも負荷がかかりますので、同時接続数は適宜、試してください。

WordPressのbloginfo(“url”)から順次HTMLソース内のハイパーリンクを辿ります。HTMLソースで相対パス表示の場合、当チェックの実行パス(=http://example.com/wp-admin/)からの相対解釈になってしまう対処に、少し手こずりましたが、[javascript]相対URLを絶対URLにする関数に救われました。

なお、重複チェックは無限ループになるため、当然除外し、外部ドメインについては、1階層までチェックします。つまり、対象WordPressサイトのリンク品質を確保するためのツールです。

使い方

  1. dead-link-checker.zipをダウンロード
    (最新版はhttp://typista.xii.jp/wp-content/uploads/dead-link-checker.zip)
  2. プラグインディレクトリに解凍
  3. ダッシュボードからアクティベート
  4. リンクチェックの実行は、「ダッシュボード」→「設定」→「Dead Link Checker Plugin」→「start」ボタン。

以上で、bloginfo(“url”)からリンクを辿り、リンクチェックを開始します。中断も可能です。
正常なページは、一覧から消えていき、エラーの場合は、HTTPステータスコードとそのリンクを含むURL(非同期の複数コネクション実行のため、最新1つで上書き)も表示します。

制限事項

jQuery(JavaScript)を利用したチェックのため、このプラグインでのエラー検知が万全ではないようです。
これは、(予想の域を越えませんが)jQuery、というよりJavaScript(?)では、クロスドメインでのHTTP通信不可のため、擬似的にサーバサイドで回避(*1)しています。この対処(出力)が万全でないのかも知れません。
また、現状ではハイパーリンクのみの抽出のため、JSやCSSは対象外です。

今後の対応

大きな機能追加要件として、被リンクゼロチェック機能、つまりどこからもリンクされていない画像等を抽出する機能を想定しています。が、これはかなり難航するかも知れません。
小粒要件としては、JSやCSSのデッドリンクチェックへの対応です。formへの対応は決めかねています。
その他、チェック結果表示のポップアップウィンドウ化 or iframe化や体裁、それらのオプション設定などなどです。

追記

外部リンクのチェック用サーバサイドスクリプト(上記*1)がXSS攻撃に悪用される危険性がありました。
バージョン0.1をご利用の方は、0.2以降にアップデートしてください。

Ktai Styleの作者Yuriko様にご指摘いただき、修正しました。

追記2

Yuriko様から、さらにご指摘いただき、XSS攻撃対策が不完全でしたので、修正しました。
バージョン0.3bにアップデートをお願いします。
なお、バージョン0.3bでは、feed等のXMLを対象としたリンクチェックが不完全な状態です。この不具合よりも、XSS対策版を優先すべきという観点で、リリースさせていただきます。
このデバッグ/修正に時間がかかりそうですが、対策完了次第、リリースいたします。
もし、当プラグインをご利用いただいている方がいらしたら、大変ご迷惑をおかけしますが、今しばらくお待ちください。

Google Adsense
Search
人気の記事
MicroAd
最近の記事
最近のコメント