私はこのようなページを持っています。ユーザーがフォームにURLを書き込んで送信します。 URLが送信されたら、そのページをCURLに接続して文字列を検索します。文字列が見つかると、URLをデータベースに追加します。そうでない場合は、ユーザーにエラーが発生します。PHP:CURLを使用する場合のセキュリティ?
URLをhtmlspecialchars()でサニタイズすると、A-Z、1〜9の正規表現も許可されます。シンボル。他のウェブサイトから取得したコンテンツもhtmlspecialchars()でサニタイズします。
私の質問は、次のようなURLを入力できますか? www.evilwebsite.com/shell.exeまたはshell.txt
PHPはそれを実行するのか、単にHTML出力を探しますか?それが安全であるかどうか、そうでない場合、私は何をすべきですか?
ありがとうございます。
ps。 allow_url_fopenは無効です。だから私はカールを使用しています。
実際には、取得したコンテンツで行うのは、基本的な正規表現スキャンだけです。たとえば、取得されたコンテンツに「Hello」テキストが含まれている場合は、URLをデータベースに挿入します。そうでない場合は、「こんにちはテキストがこのページに見つかりません」のようなエラーが表示されます。 「こんにちは」テキストをスキャンしている間に取るべきステップはありますか? – Aristona
@Anılünal:いいえ、それは完全に安全です。しかし、不要なサニタイズを削除して、特定のURLを壊してサービス拒否を引き起こす可能性があります。 –
htmlspecialchars()は評価の目からあなたを救いません:-)私は彼のポイントはXSSを防ぐことだと思います。 –