是的,你好今天我发现了我的网站的一个黑客。
当您在用户墙上(在我的社区站点中)写一条消息时,它会运行一个 ajax 调用,将消息插入数据库,然后在成功时向下滑动并显示它。
工作正常没有问题。
所以我重新思考了一下,我为此使用 POST 方法,如果它是 GET 方法,您可以轻松地执行 ?msg=haxmsg&usr=12345679。但是你能做些什么来绕过 POST 方法呢?
我制作了一个新的 html 文档,制作了一个表单,并在操作时设置了“site.com/insertwall.php”(通常在 ajax 中使用的文件),我制作了一些名称与我正在使用的完全相同的输入字段ajaxcall (msg, uID (userid), BuID (by userid) ) 并做了一个提交按钮。
我知道我有一个 page_protect() 函数,需要你登录,如果你不是,你将成为 index.php 的标题。所以我登录了(在我的 site.com 上开始了会话),然后我按下了这个提交按钮。然后我在我的网站上看到它发出了一条新消息。
我就像哇,劫持 POST 方法这么容易吗?我想它可能更安全一些。
我想知道我能做些什么来防止这种劫持?因为我什至不想知道真正的黑客可以用这个“洞”做什么。page_protect 确保会话来自同一个 http 用户代理等,这可以正常工作(尝试在不登录的情况下运行表单,它只是将我引导到起始页)但是不需要很长时间才能弄清楚登录首先然后运行它。
任何建议都非常感谢。我想让我的 ajax 调用尽可能安全,并且它们都在 POST 方法上运行。我可以对 insertwall.php 做什么,以检查它是否来自服务器或其他东西..
谢谢