如何检查Web资源的请求方式?

时间:2014-06-24 07:14:22

标签: php web

使用PHP,是否有办法检查Web服务器资源的确定方式,同时最大限度地减少伪造和黑客攻击的空间?或者更简单地说,如何检查是否是超链接点击,直接URL,提交HTML表单,编程访问等?

如果使用PHP以外的工具呢?

2 个答案:

答案 0 :(得分:0)

听起来你可能暗指cross-site request forgery (CSRF)攻击。 CSRF攻击是攻击者可以向看似来自合法用户的站点发出请求的地方(例如“将500美元转移到帐户1234”)。这些攻击滥用了网站对访问者的信任。该请求可能看似合法,因为它伴随着与用户的身份验证会话匹配的会话cookie。

为防止CSRF攻击,开发人员通常会添加具有“CSRF令牌”的隐藏表单字段。此令牌随表单提交一起提交。这是确保表单提交合法的一种手段。提交后,将验证CSRF令牌(通常将其与在服务器上存储或计算的令牌值进行比较)。

有关实施细节的信息,请查看OWASP。一个重要的注意事项是不要在URL中公开令牌(即通过GET请求),因为这些令牌可能会将令牌暴露给潜在的攻击者。

如果您对CSRF有疑虑,请随时更新您的问题,我们很乐意提供更符合您需求的其他信息。

答案 1 :(得分:0)

你不能以那种方式证明那个子弹,但一个好的开始是$_SERVER

例如,使用$_SERVER['REQUEST_METHOD'],您可以确定请求是否为get/post/put/...

关于链接点击或直接访问:$_SERVER['HTTP_REFERER']可能有帮助。

最后$_SERVER['REQUEST_URI']可能包含一些可用信息,以确定脚本是通过网络服务器(如apache)还是控制台运行。

有关详情,请参阅documentation

正如我之前提到的:你不能确定这里的任何内容,但如果你只是想要一些信息,而不是出于安全考虑而使用它,那你很好。

如果您需要安全性,则需要使用.htaccess查看可能性。