Web サイトを保護しようとしています - 誰かがフォームを送信する際に、サイトの Cookie の要件を回避することは可能ですか? クロスサイト攻撃を防止しようとしています。ありがとう
質問する
216 次
1 に答える
1
クロス サイト リクエスト フォージェリ (CSRF)のことだと思います。これは、フォームに特別な CSRF トークンを使用することで簡単に防ぐことができます。
トークンは、フォームが表示されるたびに異なる必要があります。
<?php
$token = md5(time()); /* a simple attempt to generate a token */
$_SESSION['csrf_token'] = $token;
?>
フォームに含めます。
<form>
<input type="hidden" name="csrf_token" value="<?php echo $token ?>">
...
</form>
そして、フォーム送信時にサーバーで確認します。
<?php
$storedToken = $_SESSION['csrf_token'];
unset($_SESSION['csrf_token']);
if ($_POST['csrf_token'] == $storedToken) { ... }
?>
トークンが 1 回だけ使用できることを確認してください。
また、SSLを使用していない場合は、セキュリティを強化してください。
于 2013-04-26T10:37:01.333 に答える