ホームページ >バックエンド開発 >PHPチュートリアル >画像アップロードのセキュリティに関する質問
通常、私はサフィックス名のみを確認します。
たとえば、abc.jpg をアップロードし、最終的に /xxx/xxx.jpg に配置します
しかし、今日、ある記事を見ました
原理は、コードを作成してアップロードします。
この時点でコードを実行しますか?
百度でずっと検索してたら10年前の情報が出てきたんですが、どうやらこれってASPに関係があるのでは?
この PHP にもこの脆弱性があるかどうかお聞きしたいのですが?
ファイルをアップロードするときにサフィックスのみを確認しても安全ですか?
php についても同様で、アップロード後、最初にそれが実際の画像ファイルであるかどうかを判断してから、それに相当する透明なウォーターマークを付けるのが最善です。元の画像を「破壊」すること
同じことが php やアップロードにも当てはまります。将来的には、最初にそれが実際の画像ファイルであるかどうかを判断し、次に透明な透かしを入れることが最善です。これは、元の画像を「破壊する」ことと同じです。元の画像
判断方法
ウォーターマークの追加についてはそのような考慮事項はありません
安全ではありません...
通常は Suffix 名を確認するだけですが、
たとえば、abc.jpg をアップロードし、最終的に /xxx/xxx.jpg に置きます
でも、今日ある記事を見ました
原則は、コードで JPG 画像を作成し、それをアップロードすることです。
この時点でコードを実行しますか?
百度でずっと検索してたら10年前の情報が出てきたんですが、どうやらこれってASPに関係があるのでは?
この PHP にもこの脆弱性があるかどうかお聞きしたいのですが?
ファイルをアップロードするときにサフィックスのみを確認しても安全ですか?
同じことが php にも当てはまります。アップロード後、最初にそれが実際の画像ファイルであるかどうかを判断してから、元の画像を「破棄する」ことと同じ、透明な透かしを挿入するのが最善です。裁判官
ウォーターマークの追加についてそのような考慮はありません
Baidu はい、あります。 。 。
このような問題がまだあることが判明しました。 。多くを学んだ!
安全ではありません...
チェックすべき項目は何ですか?
百度にはそれがあります。 。 。
画像サイズを取得しますか?
if (preg_match('/ die('ヒント! この画像には禁止されたコード '.str_replace('?', '?', $m_err[0]) が含まれています。'); base64_decode|base64_encode/i', @file_get_contents($_FILES['uploadfile']['tmp_name']), $m_err)) {
die('ヒント! 投稿は禁止されています。この画像には禁止されたコードが含まれています' .str_replace('? ', '?', $m_err[0]).'. ');
}
を実行するなど、簡単な画像で試していただけますか?一時保存ディレクトリを含む、写真が保存されているすべてのディレクトリのアクセス許可を「読み取り可能、書き込み可能、および実行不可能」にします
基本的にこの 2 つのポイントを実行すれば、比較的安全になります。特に最初のポイントはとても重要です