有没有办法在PHP中通过套接字阻止POST到URL?我知道所有关于http://en.wikipedia.org/wiki/CSRF但我不想在任何表单上放置带有唯一哈希的隐藏输入,我只想阻止从远程主机或任何其他客户端全局POST到我的脚本的任何URL。 我有办法通过检查HTTP_EXPECT和REQUEST_METHOD来阻止通过cURL发布POST,但是当客户端通过套接字连接调用脚本时,没有任何特殊参数我可以决定它,实际上普通POST或POST之间没有区别通过插座。 如果您通过套接字尝试POST http://www.google.com,您将收到 HTTP / 1.1 405方法不允许错误,我需要的所有内容与我的PHP脚本相同。
感谢。
答案 0 :(得分:1)
我不确定是否有你的问题。您可以使用mod_rewrite
禁止所有POST
次请求:
RewriteEngine On
RewriteCond %{REQUEST_METHOD} !^POST
RewriteRule .* /yourerrordocuments/405.html [R=405,L]
将其放入.htaccess
。它将禁用所有发布请求。
答案 1 :(得分:0)
@ hek2mgl是所有脚本的最佳解决方案,但是每个脚本,您可以尝试:
<?php
if(isset($_POST))
{
die();
}
else
{
echo 'continue';
}
?>