13

私のプロジェクトのすべてのページには認証が必要です..そして、通常[ValidateAntiForgeryToken] and @Html.AntiForgeryToken()、私はコントローラーとビューでは使用しません..ログインページだけがそれを持っています..

  1. 彼らは何[ValidateAntiForgeryToken] and @Html.AntiForgeryToken()ですか??
  2. それらを使用する必要がありますか??
  3. どのクッキーレスを使用する必要がありますか??

私の web.config の部分は次のようになります。

<authorization>
  <deny users="?" />
</authorization>
<authentication mode="Forms">
  <forms loginUrl="~/User/Login" timeout="30" cookieless="UseDeviceProfile" name="AbosSMSP" />
</authentication>

このような私のエラー; このような私のエラー

4

1 に答える 1

22

偽造防止トークンは、投稿アクションに送信されるリクエストが実際に出力されたビューから発信されたものであることを保証する方法であると考えてください。クロス サイト スクリプティング攻撃を阻止し、ポスト リプレイ攻撃も処理すると思います。

アプリケーションへの玄関口を保護することは良い出発点であり、力ずくでデータが盗まれるのを防ぎますが、すべての形態の攻撃を防ぐわけではありません。ソーシャル エンジニアリングやフィッシングなどによって、ログイン ページを破ることなく、誰かがあなたのサイトにアクセスできるようになる可能性があります。

侵入すると、あらゆる種類の不快な攻撃が発生する可能性があるため、OSWAP の推奨事項を確認し、脆弱な攻撃が他にないかどうかを確認してください。 http://www.ergon.ch/fileadmin/doc/Airlock_Factsheet_OWASP_en.pdf

疑わしい場合は、倫理的なハッカーに数百スターリングでサイトの侵入をテストしてもらうことができます.機密データを管理している場合は、あなたが考えもしないかもしれないものを引き出してくれるので、それをお勧めします.

セキュリティに関する私の重要なヒント

  1. ログインページの偽造防止トークン
  2. すべての認証試行を少なくとも 1 秒遅くします (ブルート フォースが非現実的になります)
  3. n 回の無効なログオンに対するアカウント ロックアウト手順を実装する
  4. 失敗したログインには常に一般的なエラー メッセージを使用して、ハッカーがログインのどの部分が間違っているかを知るのを防ぎます。
  5. データベース内のパスワードは常にソルトで暗号化してください。盗まれたデータベースに対するレインボー攻撃を防ぐために、ソルトはユーザーごとにする必要があります。
  6. 表示または取得されたデータがそのユーザーにとって有効であることを常に確認してください
  7. パラメータ化されたSQLを常に使用する
  8. 変更や直接参照攻撃の試みを防ぐために、URL とビューで渡される ID を難読化してみてください

それに続いて、ペンテストで発生するもののほとんどをカバーし、安全なサイトに向けて適切に設定できると思います

于 2013-06-20T08:12:04.883 に答える