PHP和AJAX安全性
在过去,当我使用jQuery编写HTML时,为了访问特定的PHP页面,我总是这样做:PHP和AJAX安全性,php,html,ajax,Php,Html,Ajax,在过去,当我使用jQuery编写HTML时,为了访问特定的PHP页面,我总是这样做: user.php?Action=1&User=Adrian..... 这将返回纯文本JSON,jQuery将其转换为javascript对象。不过,我对这种方法有一些疑问 这安全吗?JSON正在以纯文本形式传回。它应该通过HTTPS使用吗 防止直接访问PHP的最佳方法是什么?只是检查活动会话 整个方法行吗 干杯, 阿德里安:这取决于你在传送什么。如果您是通过HTTPS传输信用卡数据,那么肯定是这样。如
user.php?Action=1&User=Adrian.....
这将返回纯文本JSON,jQuery将其转换为javascript对象。不过,我对这种方法有一些疑问
2和3)确保检查SQL注入的输入,就像检查任何$\u GET变量一样。你真的应该像平常那样对待$_getdata每当我允许JSON/crud访问时,我总是在基于会话的访问控制规则(基于角色或基于组的权限)后面保护为它服务的PHP页面(
user.PHP
)。然后,我将列出允许用户/组/角色访问的表/字段。复杂程度取决于所提供数据的性质。第二,它取决于你在做什么
如果您正在使用“user.php”文件对数据库进行任何更改,您可能希望使用POST而不是GET(这会在URL栏中隐藏参数,如果您的页面被爬网/刮取,这是安全的)
要使用POST,请在user.php文件中将$\u GET
的实例替换为$\u POST
在jQueryAjax调用中,确保参数“type”设置为“POST”
类型:“POST”,
GET请求应该只用于执行从数据模型(DB,随便什么)获取和显示数据的任何操作。POST请求用于进行任何更新、添加(更严格的要求)或删除(删除)
如果只希望该特定用户访问user.php脚本,则需要检查该用户的会话,并确保它与试图访问特定用户参数的用户匹配。验证php中的活动会话或登录(如有必要)。如果您的任何数据是敏感的,您应该只通过SSL为其提供服务。还可以考虑使用Ajax请求发送的令牌来防止跨站点请求伪造。XSRF令牌值与PHP会话进行比较。为什么要阻止直接访问PHP?(首先,这是不可能的——如果Ajax可以访问它,那么用户就可以访问它。)如果是因为安全性,那么就有一个漏洞。另外,为什么您希望它通过HTTPS?里面有敏感数据吗?