Php 防止多页表单攻击机器人程序
我尝试为我的脚本设计一个保存重置密码页面。我走了很远,但现在我需要一些帮助。我已经得到了:Php 防止多页表单攻击机器人程序,php,forms,security,Php,Forms,Security,我尝试为我的脚本设计一个保存重置密码页面。我走了很远,但现在我需要一些帮助。我已经得到了: 用户将他的邮件放入表单中,脚本向他发送一封带有用户必须打开的url的邮件。参数:usertype、userid、token 如果用户访问该url,他将进入一个页面,其中包含一个已插入令牌的表单。他只需要点击“继续” 第三页显示更改密码的表单 现在我对这个脚本的安全性有点怀疑。假设攻击者知道邮件、用户类型和用户ID(只会是登录的人,但可能知道所有这些)。他现在可以向用户邮件发送密码重置链接。到目前为止还没有
<form name="confirm" method="GET">
<p>
<label for="confirm">Token
<input type="text" name="confirm" id="confirm_code"
<?php
if(isset($_GET['confirm'])) echo ' value="'.$_GET['confirm'].'"';
?>
></label>
</p>
<p><div class="g-recaptcha" data-sitekey="X" data-callback="checked" data-size="invisible"></div></p>
<p style="text-align:center;">
<input type="submit" value="Proceed">
</p>
<?php
echo '<input type="hidden" name="usertype" value="'.$_GET['usertype'].'">';
echo '<input type="hidden" name="userid" value="'.$_GET['userid'].'">';
echo '</form>';
<form name="change" method="post">
<p>
<label for="pw">New pw
<input type="password" name="pw" id="pw"></label>
</p><p><label for="pw_repeat">Repeat
<input type="password" name="pw_r" id="pw_repeat"></label>
</p><p style="text-align:center;">
<input type="hidden" name="usertype" value="<?php echo $_GET['usertype']; ?>">
<input type="hidden" name="userid" value="<?php echo $_GET['userid']; ?>">
<input type="submit" name="change" value="Change now">
</p>
</form>
代币
嘿,我也是一个刚开始工作的程序员,我的工作主要是登录之类的。
以下是我的建议:
添加一个纯随机生成自动密钥的算法
根据随机密钥和指定值集生成链接(保密),并确保最终生成的链接非常大
在第二个页面上,确保您请求一个密钥(您可以将此密钥与页面链接一起直接发送到他的电子邮件),即随机生成的密钥,然后算法神奇地解密,以查看基础数据是否与他帐户上附加的某些值或其他内容相同李>
确保链接在强行通过页面所需的时间内过期
如果您能确保正确遵循上述步骤,那么即使用户有点不舒服,您的安全性也会相当好。你觉得怎么样
干杯,
Rj查找i)双因素身份验证。ii)防止跨站点请求伪造,iii)跨页面使用会话数据。谢谢!我忘了。我将阅读XSRF,并用我认为合适的会话来阻止它。对不起,我的问题是noob。