0

Web サイトを保護しようとしています - 誰かがフォームを送信する際に、サイトの Cookie の要件を回避することは可能ですか? クロスサイト攻撃を防止しようとしています。ありがとう

4

1 に答える 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 に答える