私はミッションクリティカルなWebサイトを運営していないので、業界の強みを求めているわけではありません。しかし、私は、ハードディスク上の偽のページを嘲笑い、不正なアクセスを試みるなどの基本的な攻撃から保護したいと考えています。フォーム提出が合法的な用途からのみ受け入れられるようにするための標準的な技術はありますか?PHPフォームを保護するにはどうすればよいですか?
答えて
できません。あなたのページのユーザーから生成されたHTTP要求と、独自のWebページを持つ悪意のあるユーザーを区別する信頼できる方法はありません。
適切なパスワード認証方法を使用するだけで、誰もパスワードを知らない限り(HTTPリクエストの発信元に関係なく)誰もが何かを破壊することはできません。信頼できるサーバー側の認証を取得したら、このシナリオを気にしない非堅牢なフープを飛び越す時間を無駄にする必要はありません。
@Ben:悪意のある攻撃者が回避するのは簡単です。 –
いくつかのテクニックが近づく:
- は、すべてのフォームのフォームのキーを生成します。キーはデータベースレコードに関連し、ページビュー(userID、cookieなど)に関する他の何かに関連します。フォームキーは、そのユーザー/クッキーとフォームキーが一致しない場合は転記できません。キーは一度だけ使用され、自動ツールが(そのユーザーの)盗難されたキーを使用して再度ポストするのを防ぎます。
- フォームキーは、共有秘密ハッシュにすることもできます。フォームを生成するPHPは、フォームがポストされたときなどに確認できるものなど、CookieとユーザーIDをハッシュできます。
- ユーザーは確認が必要なキャプチャを追加できます。
- 特定のフォームの自動不正使用を防ぐことができる、そのユーザー/ Cookieからの投稿の数を制限することもできます(スロットリング)。
フォームがディスクから転記されないことを保証することはできませんが、自動化の容易さを制限することはできます。
PHPでこれをどうやって行うのか自由に教えてください。単に「ノンスを使用する」と言っても、役に立たない程度です。 – cHao
私もお勧め:
- 保存フォームを送信したコンピュータのIP(サーバーからそれを阻止するかのit.s迷惑)
- 情報がロードされたときに別のページにユーザーを送信するため、ページを更新するときにPOSTデータが取得されません。
IPは、少なくともいくつかの理由(IPの再利用、ルータのマスキングなど)で複数のクライアントによって使用される可能性があることに注意してください。 –
ログインシステムを正しく作成するのは難しいため、自分で作成するべきではありません(セキュリティ)。あなたのサイトにあなたのユーザのパスワードを(いかなる形であれ)保存してはいけません(危険な)=>例えば、lifehacker.comが侵害されました(私のアカウントでも:()です).lightopenidのようなものを使うべきです)を使用して認証します。
あなたのサイトにあなたが持っている残りのフォームは、(少なくとも)次の保護を持っている必要があります。
- CSRFの保護:This link CSRF
- 使用から保護する方法CSRFがあるthorougly何かを説明し、さらに重要http-only cookies:http-only sessions,http-only cookies
- XSS using filterから保護してください。 SQLインジェクション
に対してyouselfを保護するために
- のようなものです再キャプチャ
- avoidサーバ変数
詳細については、PHP Form handling tutorialセキュリティセクションを参照してください。
- 1. AIRでコンテンツを保護するにはどうすればよいですか?
- 2. iPhoneでブロブデータを保護するにはどうすればよいですか?
- 3. チャートコードを保護するにはどうすればよいですか?
- 4. Google Maps APIを保護するにはどうすればよいですか?
- 5. ユーザーのページでJavaScriptからPHP Cookieを保護するにはどうすればよいですか?
- 6. ビデオを盗まれないように保護するにはどうすればよいですか?
- 7. PHP画像アップロードスクリプトを悪用から保護するにはどうすればよいですか?
- 8. PHPを使用してディレクトリを保護するにはどうすればよいですか?
- 9. hbaseを保護するにはどうすればいいですか?
- 10. プライベートAPIを保護するにはどうすればいいですか
- 11. Amazon S3をパスワードで保護されたディレクトリに許可するにはどうすればよいですか?
- 12. 春のセキュリティで保護されるクラスを制限するにはどうすればよいですか?
- 13. パスワードで保護されたキーファイル(pfx)でStrongNameKeyPairを使用するにはどうすればよいですか?
- 14. MACでパスワードで保護されたcsvファイルを生成するにはどうすればよいですか?
- 15. JSONファイルをREST APIなどの方法で保護するにはどうすればよいですか?
- 16. 認証によって一部のページを保護するにはどうすればよいですか?
- 17. ブルートフォースで保護されたユーザーアカウントを回復するにはどうすればよいですか?
- 18. C++で保護されたメソッドを単体テストするにはどうすればよいですか?
- 19. Ruby on Rails:httpパスワードで保護されたサブドメインを作成するにはどうすればよいですか?
- 20. Electronで構築された商用アプリを保護するにはどうすればよいですか?
- 21. サブクラスで親クラスの保護されたメソッドを使用するにはどうすればよいですか?
- 22. CFNスクリプトで保護されたS3ファイルにアクセスするにはどうすればよいですか?
- 23. 自動スクレーパーからリンクデータベースを保護するにはどうすればよいでしょうか?
- 24. ペイロードではなく認証を保護するにはどうすればよいですか?
- 25. eBay APIに基づくJavaScriptアプリケーションでAppIDを保護するにはどうすればよいですか?
- 26. レールアプリでCSRF保護をオフにするにはどうすればよいですか?
- 27. 新規性がクライアント側であるSaaSアプリケーションを保護するにはどうすればよいですか?
- 28. Nodejsでzipファイルをパスワードで保護するにはどうすればよいですか?
- 29. 新しいWebサーバー(Server 2008)を保護するにはどうすればよいですか?
- 30. 不正使用からGPLベースのアプリケーションを保護するにはどうすればよいですか?
あなたがこれまでに得てきた答えは、良いものの、かなり広範囲です。質問をより具体的にすることができれば、より詳細な回答が得られるかもしれません。特に、あなたはどのような種類の許可を使用していますか?それは「偽のページを嘲笑」することによって回避できますか? –
誰かがあなたのディスクにアクセスできるようになると、そのゲームは終了します。その時点でリモートコードが実行されます。標準的なテクニック?何に対して? OWASPを読んでください。 – rook