verify.php
<?php
session_start();
$token= md5(uniqid());
$_SESSION['delete_customer_token']= $token;
session_write_close();
?>
<form method="post" action="confirm_save.php">
<input type="hidden" name="token" value="<?php echo $token; ?>" />
Do you really want to delete?
<input type="submit" value=" Yes " />
<input type="button" value=" No " onclick="history.go(-1);" />
verify_save.php
<?php
session_start();
$token= $_SESSION['delete_customer_token'];
unset($_SESSION['delete_customer_token']);
session_write_close();
if ($_POST['token']==$token) {
// delete the record
} else {
// log potential CSRF attack.
}
?>
Допустим, у нас есть типичная защита CSRF, как эта Что, если это использует аттакод для обхода токена csrf?
//On any site
<img src="http://cia.teletubbies.com/csrf.php" height="0" weight="0"/>
//csrf.php
$cont = get_file_contents("http://cia.google.com/confirm.php");
// parse the html using [PHP Simple HTML DOM Parser][2] and get the CSRF token
//CURL and send a POST request to confirm_save.php with the token
Эта штука продолжает беспокоить меня, но мне лень пытаться атаковать любой случайный сайт.Разве это не возможно?
Пример кода был украден из , предотвращая csrf в php
Обновлен
Что происходит, когда кто-то хочет передать токен с одной платформы на другую или со стороны сервера на сторону клиента?Например, Flash на PHP, как его защитить от csrf?