我需要在php中检查请求URL。 基本上我需要检查表单是否从同一个服务器发布或不。我需要形式的行动在PHP我怎样才能得到我的服务器上的post数据url在php
回答
没有可靠的方法来告诉HTTP请求是为响应构建的。
你可以做的是实现对CSRF的防御。这并不能保证提交来自您自己的服务器上的表单,但它会阻止第三方(Mallory)欺骗您网站的用户(Alice)代表他们提交不良数据。
当爱丽丝到达您的站点时,生成随机令牌并将其提供给她(例如在会话中)。将该标记的副本放入表单中的隐藏输入中。如果在提交表单时,令牌不匹配,则请求来自Mallory。
如果问题是你不相信爱丽丝不自己编辑表格,那么你不能用它作为防御。
不要给你不信任她的Alice数据。在让他们访问站点的相关位之前,检查提出请求的用户的身份。
例如,如果表单是“删除消息”表单并且您的担心是“Alice可能更改要删除的消息的ID”,那么当您得到时,请检查Alice是否为该消息的拥有者请求删除它。
怀疑:我们不能使用$ _SERVER [“SERVER_NAME”]或$ _SERVER ['HTTP_REFERER']?有任何疑问吗? – user1844933
'SERVER_NAME'告诉你发送请求的服务器的名称*为*。 'HTTP_REFERER'是可选的,浏览器通常不会发送它。 – Quentin
你是有需要的CSRF token的。
当页面被请求字符串添加到窗体,像
<input type=hidden name=token value=$token>
,并将其保存在数据库中也是如此。
令牌可以使用类似时间戳的散列来生成。
提交表单时,验证令牌是否由服务器本身生成。
- 1. 我怎样才能得到正在运行的服务器的URL
- 2. 我怎样才能得到
- 3. 我怎样才能得到
- 4. 我怎样才能得到的数字
- 5. 我怎样才能得到在Android的
- 6. 我怎样才能得到响应从Web服务器
- 7. PHP:我怎样才能得到用mod_rewrite重写的URL?
- 8. 我怎样才能得到上周的日期范围在PHP?
- 9. 我怎样才能上传在asp.net服务器端的图像
- 10. 我怎样才能得到我点击的列表项数据?
- 11. 我怎样才能在PHP
- 12. 我怎样才能得到在php数组的值?
- 13. 我怎样才能在角服务
- 14. 我怎样才能从URL
- 15. 我怎样才能得到Queryable.Join的MethodInfo
- 16. 我怎样才能得到`在centOS6
- 17. 我怎样才能得到它通过我所有的数据库服务器上运行
- 18. 我怎样才能得到服务器实例的数量使用API
- 19. 我怎样才能得到在modx图库中的URL变量
- 20. 我怎样才能得到一个RESPONSABLE URL的长度在JavaScript
- 21. 我怎样才能在URL中的JavaScript
- 22. C#我怎样才能回到我的基类的web服务
- 23. 我怎样才能在PHP中获得唯一的事务ID?
- 24. WordPress,我怎样才能得到我上传的图片的ID?
- 25. 我怎样才能得到我的JavaScript通过PHP
- 26. 我怎样才能得到一个JSON POST的结果返回
- 27. 我怎样才能获得通过卷曲数据在PHP
- 28. 我怎样才能得到的数值数据出MSXML :: IXMLDOMElement
- 29. 我怎样才能使用多表,而我的数据在PHP?
- 30. 我怎样才能得到谷歌适合的数据的
你尝试了什么? – SirDarius