2

<a href="javascript://potentiallybadstuff"> Link </a>すべてのリンクを警告のように置き換えることができる正規表現を探しています。私はプレーをしてきましたが、今のところ成功していません!私はいつも正規表現が苦手でした。誰かが私を正しい方向に向けることができますか? 私はこれまでのところこれを持っています:

編集:正規表現を使用しないと言っている人 - HTML は、マークダウン内のすべての HTML タグが削除されたマークダウン パーサーの出力になります。したがって、すべてのリンクの出力が上記のようにフォーマットされることがわかっているため、この特定の状況では正規表現が確実に優れたツールになります。ユーザーが純粋な HTML を入力することを許可していません。そしてSOは非常に似たようなことをしました.javascriptリンクを作成してみてください.削除されます.

<?php
//Javascript link filter test
if(isset($_POST['jsfilter'])){
    $html = "<a href=\"". $_POST['jsfilter']."\"> JS Link </a>";
    $pattern = "/ href\\s*?=\\s*?[\"']\\s*?(javascript)\\s*?(:).*?([\"']) /is";
    $replacement = "\"javascript: alert('Javascript links have been blocked');\"";
    $html = preg_replace($pattern, $replacement, $html);
    echo $html;
}
?>
<form method="post">
<input type="text" name="jsfilter" />
<button type="submit">Submit</button>
</form>
4

4 に答える 4