测试CSRF漏洞

时间:2014-07-12 11:14:05

标签: php html5 csrf

在我的php页面(register.php)中有一个表单,我想检查它是否容易受到CSRF的影响(正如我所期望的那样):

<form method="post" name="registration">
    <label>Nome</label><br>
    <input name="nome" type="text" autofocus required="required" placeholder="Nome">
    <input name="cognome" type="text" required="required" placeholder="Cognome"><br>
    <label>Azienda</label><br>
    <input name="azienda" type="text" required="required" placeholder="Azienda"><br>
    <input name="submit" type="submit" value="Registrami">
</form>

要测试我从浏览器访问的漏洞

http://localhost/myfolder/register.php?nome=MyName&cognome=MySurname&azienda=University

我希望浏览器填写表单的字段,但这不会发生。

你能澄清一下原因吗?

1 个答案:

答案 0 :(得分:2)

浏览器仅填充包含自动填充数据的表单字段。

对于从URL到表单的数据,服务器必须解析URL中的数据并使用它来填充from字段。

e.g。

value="<?php echo htmlspecialchars($_GET['nome']); ?>"

您的代码不这样做的事实并不意味着表单不容易受到CSRF的攻击。<​​/ p>

CSRF攻击完全替换表单(通常使用隐形表单,预先填充恶意数据并使用JavaScript提交并托管在不同的网站上(因此&#34;跨站点&#34;)。 CSRF攻击不是将数据放入表单,而是放入提交给的表单中。

攻击登记表很少有任何意义。更可能的目标是评论表格(因此,站点A上已经注册和登录的用户将用于提交站点B所有者编写的评论)。然后,将使用站点A上的用户帐户创建站点B的垃圾邮件。