+ -
当前位置:首页 → 问答吧 → PHP 防止外部提交的一些问题...

PHP 防止外部提交的一些问题...

时间:2011-10-13

来源:互联网

排除1:HTTP_REFERER
原因:可以进行伪造,而且只能用于herf='#',可用性实在不高

排除2:加入SESSION和隐藏域随机key
原因:例如打开第一个A页面,A页面的SESSION=1以及INPUT的value=1。
  再次打开第二个A页面,A页面的SESSION=2以及INPUT的value=2。
  结果第一次打开的A页面SESSION=2了,也就代表了第一次打开的A页面已经失效

排除3:并行会话加入隐藏域随即key
原因:并行会话可以每次打开A页面都产生一个SESSION[name]或者COOKIES[name],比如每个用户打开5个相同的类似页面,就会产生5个不同的SESSION或者COOKIES,浪费资源。

排除4:验证码
原因:用户体验不够好

除了以上方法之外..还有更好的解决办法吗?

作者: darklelly   发布时间: 2011-10-13

比较难定义啥叫外部提交,,

大部分语言都能轻易模拟浏览器的行为【不是渲染页面效果,是保持服务器会话通讯】

我认为做好服务端安全,必要的时候对数据提交频率控制,或根据用户分配权限即可

作者: amani11   发布时间: 2011-10-13

amani11 ++,说的很在理,还是没明白lz说的外部提交什么个含义,是指类似curl这种模拟提交方式么?
感觉你的几个排除跟外部提交没什么关系哦...

作者: ohmygirl   发布时间: 2011-10-13

引用 2 楼 ohmygirl 的回复:
amani11 ++,说的很在理,还是没明白lz说的外部提交什么个含义,是指类似curl这种模拟提交方式么?
感觉你的几个排除跟外部提交没什么关系哦...
楼主指的是非本站提交数据

作者: Novolee   发布时间: 2011-10-13

恩,就是非本站提交的数据,有什么好点的办法吗?

作者: darklelly   发布时间: 2011-10-13

CSRF 还是做SESSION TOKEN吧

作者: yhkyo   发布时间: 2011-10-14

没有很好的办法 如amani11 所说服务器端的安全最重要
HTTP Watch Fiddler 等工具能轻易的改变发向服务端的数据
我在你本站正常提交一次 分析下数据 然后就可以用工具模拟了

作者: heyli   发布时间: 2011-10-14

相关阅读 更多