现在,我有一个表单在自己操作。有一些代码可以检查用户是否应该出现在那里。有没有一种方法可以阻止脚本运行某些代码段,如果它在按下submit之后对自身进行了操作。
我正在考虑使用一个会话变量来检查,但我完全搞糊涂了:p
有什么想法吗?
发布于 2012-10-03 20:20:01
好的。如果你是自提交表单操作,只需检查$_POST是否为空(假设你正在向表单发布)
if (!empty($_POST))
{
...
}当我使用PHP时,我在表单模板中使用了一个input-element,如下所示:
<input type="submit" name="submit" id="submit" value="Login" /></td>..。在PHP页面中,我检查帖子是否是自己提交的,如下所示:
// if page is not submitted to itself echo the form
if (!isset($_POST['submit']))
{
...
}但这并不安全。如果您想获得自提交的全部好处,您应该尝试通过用随机令牌挑战客户端,并要求客户端重复该令牌来对抗Cross-site request forgery (XSRF)。
例如,在表单中嵌入一个隐藏的输入,如下所示:
<input type="hidden" name="nonce" value="<? echo $NONCE_VALUE; ?>" />https://stackoverflow.com/questions/12708305
复制相似问题