ユーザが入力したテキスト内のURLをリンク化して表示するPHPライブラリを作り始めました

ユーザが入力したテキスト内のURLをリンク化して表示するという要件があり、実装方法を検討していました。

これはテストです。
Webサイトは、 https://www.example.com/ です。
<script>alert('XSS');</script>

上のテキストがユーザ入力として渡されたら、下の様に変換する機能が要件です。

これはテストです。<br>
Webサイトは、 <a href="https://www.example.com/" target="_blank" rel="noopener">https://www.example.com/</a> です。<br>
&lt;script&gt;alert('XSS');&lt;/script&gt;

このような要件は結構ありがちなので、packagistで検索したのですが、ずばり目的に合致したライブラリを探すことができませんでした。

上のライブラリが求めている目的に近かったのですが、linkify は、HTMLドキュメント内のURL等のテキストを a タグで装飾して出力するというものでした。上の例では、scriptタグ部分は、無視して出力されない仕様になっているようでした。

他の類似ライブラリも、HTMLドキュメントを入力としてタグベースで解析するものだったので、今回の自分の要件「テキストを受けとって、URLはリンクとしつつ他を適切にHTMLエンコードする」というライブラリを作ってみようと思いました。

ゆっくり進めて、packagistに上げるつもりです。

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です


reCaptcha の認証期間が終了しました。ページを再読み込みしてください。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください