php – 如何使我的代码更安全

前端之家收集整理的这篇文章主要介绍了php – 如何使我的代码更安全前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我对像这个网站的评论(类似的东西)进行了投票,我对可能的http请求滥用感到担忧.在向您展示可疑代码后,您会明白我的意思:
$.ajax({
  type: 'POST',url: 'http://localhost/comments/vote_down/' + post_id
});

现在它仍然在localhost上,但最终会进入网络.如果有人只是制作某种类型的脚本会运行n次这个URL http:// localhost / comments / vote_down / post_id会怎么样?

甚至用户身份验证都不是很有用,您只需调整恶意脚本进行身份验证,然后再进行身份验证即可.如何使此请求更安全,我该怎么办?谢谢

编辑

我看到了一些答案,而不是我到目前为止一直在寻找的答案.

也许我期待太多,有没有办法我可以直接拒绝这个请求,除了有人从localhost(或website.com)重定向,x尝试之后.

也许某种头认证?我不是很了解这就是我问的主要原因.

编辑

也是我大约一分钟左右发现的事情,我正在浏览几个类似的问题而我的萤火虫已经开启了,我向收藏夹添加了一个问题..看到控制台发布回复200 OK然后我试了10次就好了看我什么时候会被拒绝再做同样的事情…最终我感到无聊..所以如果StackOverflow没有解决那个问题……我想做什么:=)

至少,您可以确保每个用户只能投票一次.

>如果用户登录,请不要投票.
>如果用户登录,则限制每个评论投票一票(他们是否可以将投票从上到下更改取决于您)
>如果您想让未注册用户投票,请使用cookie和IP地址以及useragent检查将其锁定. (远非防弹,但会阻止一些麻烦制造者)

其他选项:

>实施验证码

为了回应您的编辑:

如果您正在讨论检查有效的推荐页面,那么您运气不佳.这非常容易被欺骗.您可以实现令牌检查,您可以在其中生成有效X秒的散列,并拒绝所有具有无效或过期散列的请求.这不会阻止人们多次投票.

回复您的第二次编辑:

状态代码200仅表示http请求成功,应用程序逻辑决定对请求执行的操作是完全不同的问题.您可以拒绝投票并返回200,就像您可以返回403(尽管在这种情况下可能更合适).

猜你在找的PHP相关文章