私のウェブサイトにアップロードフォームがあります。私は実際には実際にファイルの種類を含めたり除外したりしていません。代わりに、私はこれを使用していウェブサイトのアップロードによるハッキング防止
:ファイルの種類を保つが、790cd5a974bf570ff6a303c3dc5be90f
のようにいくつかのランダム不可解にファイル名を変更します
$fileUploadName = $target_dir.md5(uniqid($target_file.rand(),true)).".".$imageFileType;
。
このようにして、ハッカーはhack.php
ファイルをアップロードすることはできず、www.example.com/uploaded_files/hack.php
でファイルを開くことはできません。 790cd5a974bf570ff6a303c3dc5be90f.php
。私の見解では、これは完全に安全です。この方法で安全だと私は正しいですか?
自己実行ファイルのみが問題になると思います。自己実行ファイルも存在しますか?
を取得するには、とにかくLink to someones isimage functionhttp://php.net/manual/en/function.uniqid.phphttp://php.net/manual/en/function.rand.php
使用
file_get_contents
画像であることを確認します's_principle) "攻撃者(暗号鍵)以外のシステムに関するすべての情報を知っている場合、攻撃者はファイル名のMD5チェックサムを使用していることを知り、アップロードされたファイル名を推測することができます。 –アップロードされたファイルの実行を許可する理由は何ですか? – miken32
@ miken32あなたが何を意味するのか分かりません。もちろん、私はハッカーがファイルをアップロードしてからexcuteすることを避けたい。これを避けるため、私はmd5(uniqid($ filename))でわかりにくい何かの中で実際のファイル名を変更しています。この方法では、(実際の)ファイル名がわからないので、ハッカーはブラウザ経由でファイルを呼び出すことはできません。もちろん、これは自己実行ファイルであれば動作しません。しかし、そうです。自己実行ファイルも存在しますか? – David