php - 阻止通过 PHP 进行远程访问

标签 php javascript jquery mysql post

解决这个问题;我不经常在 php 或数据库编程方面做太多事情,所以我只是想在当前的项目中格外小心。

基本上,我有一个由数据库支持的站点,并且有一些 Jquery 代码,它们使用“post”方法插入行到数据库中。我一开始就对安全性产生了想法,因为人们看不到我的 php,但可以看到我的 Javascript。一旦我完成系统设置,我就做了一个测试,运行 jquery 确实会插入信息,即使我在远程源上......这显然会导致可能的重大安全问题。所以像我这样不成熟的人,我只是想知道我应该如何防止这种情况并更好地保护系统?

还有...请不要侮辱我或无礼...我知道我可能很愚蠢或其他什么,但我只是想学习!

最佳答案

这就是 Cross Site Request Forgery (CSRF)same origin policy sandbox旨在防止。

从另一个 Angular 来看,如何阻止某人在其网站上编写表单并将其作为 POST 请求提交给您的脚本以添加垃圾记录?

通常,CSRF 保护由您的框架提供。如果你想直接用PHP实现,非常简单。

  1. 根据服务器代码生成一个唯一 token ,并将其添加到 session 中。
  2. 将其作为隐藏字段嵌入表单中。
  3. 在接受表单的脚本上,检查是否存在此隐藏字段。

如果该字段存在,请将其与 session 中的内容进行匹配,如果匹配,则这是一个合法的请求。

如果它们不匹配(或者该字段丢失),那么它是一个远程请求,您可以拒绝它。

This page提供了一些PHP代码来实现上述内容。

完成此操作后,您需要确保 jquery 脚本可以通过相同的方式进行身份验证。 This snippet详细介绍了在 jquery 中实现相同技术的步骤。

关于php - 阻止通过 PHP 进行远程访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11184094/

相关文章:

php - 我无法使用 php 将信息插入 mysql 数据库

javascript - 如何判断 DOM 元素在当前视口(viewport)中是否可见?

javascript - 从 JsonResult 返回字符串数组并在 JavaScript 中使用它

php - React native http post 得到 Json Parse 错误 : Unrecognized token '<'

php - Foreach 插入具有相同 ID 的内容

javascript - 更改节点类型

javascript - 使用 ajax 响应检查复选框

javascript - 如何在单页应用程序中切换照片?

php - 以编程方式为 WooCommerce 中的特定可变产品设置最小、最大和步长数量

javascript - 您如何调试 Javascript 中的时序问题?