ユーザーが提供する他のデータと同様に、あらゆる種類のエクスプロイトを回避するために、URLを適切にエスケープしてフィルタリングする必要があります。できるようになりたい
ユーザー指定のURLを
href
属性に入れます。(引用符を書くのを忘れた場合に失敗しなければボーナスポイント)<a href="ESCAPED_USER_URL_GOES_HERE">...</a>
javascript:
悪意のあるドメイン名へのリンクなどの悪意のあるURLを禁止します。ユーザーにある程度の余裕を持たせます。彼らがそのようなものを追加するのを忘れたという理由だけでエラーを発生させたくありません
http://
。
残念ながら、この種の問題に対する「標準的な」解決策は見つかりません。インスピレーションとして私が見つけた唯一のものはencodeURI
Javascriptの関数ですが、それは単純なURLパラメーターのエンコードを行うだけで、:
やなどの特殊文字を残しているため、2番目のポイントには役立ちません/
。