将其排除在外;我在php或数据库编程中经常做不了多少,所以我只是想在这个当前项目中格外小心。
基本上,我有一个由数据库驱动的站点,我有一些Jquery代码使用“post”方法插入行到数据库中。我一开始就对安全性有所了解,看到人们看不到我的PHP,但可以看到我的Javascript。一旦我完成了系统的设置,我就做了一个测试并运行jquery确实插入了信息,即使我在远程源上......这显然会导致可能出现的重大安全问题。所以像我一样未经精炼,我只是想知道如何防止这种情况并更好地保护系统?
并且......请不要侮辱我或者粗鲁......我明白我可能是愚蠢的或者其他什么,但我只是想学习!
答案 0 :(得分:3)
这是Cross Site Request Forgery (CSRF
)和same origin policy sandbox旨在防止的内容。
从另一个角度来看,如何阻止某人在其网站上撰写表单并将其作为POST请求提交给您的脚本以添加垃圾记录?
通常,框架会提供CSRF保护。如果你想直接在PHP中实现它,那很简单。
如果该字段存在,请将其与会话中的内容匹配(如果匹配) - 那么这是合法请求。
如果它们不匹配(或字段丢失),那么它是一个远程请求,你可以拒绝它。
This page提供了一些PHP代码来实现上述目的。
完成后,您需要确保可以以相同的方式验证jquery脚本。 This snippet详细说明了在jquery中实现相同技术的步骤。