Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/231.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP和AJAX安全性_Php_Html_Ajax - Fatal编程技术网

PHP和AJAX安全性

PHP和AJAX安全性,php,html,ajax,Php,Html,Ajax,在过去,当我使用jQuery编写HTML时,为了访问特定的PHP页面,我总是这样做: user.php?Action=1&User=Adrian..... 这将返回纯文本JSON,jQuery将其转换为javascript对象。不过,我对这种方法有一些疑问 这安全吗?JSON正在以纯文本形式传回。它应该通过HTTPS使用吗 防止直接访问PHP的最佳方法是什么?只是检查活动会话 整个方法行吗 干杯, 阿德里安:这取决于你在传送什么。如果您是通过HTTPS传输信用卡数据,那么肯定是这样。如

在过去,当我使用jQuery编写HTML时,为了访问特定的PHP页面,我总是这样做:

user.php?Action=1&User=Adrian.....
这将返回纯文本JSON,jQuery将其转换为javascript对象。不过,我对这种方法有一些疑问

  • 这安全吗?JSON正在以纯文本形式传回。它应该通过HTTPS使用吗
  • 防止直接访问PHP的最佳方法是什么?只是检查活动会话
  • 整个方法行吗
  • 干杯, 阿德里安:这取决于你在传送什么。如果您是通过HTTPS传输信用卡数据,那么肯定是这样。如果您正在传输不太敏感的数据,可能不会


    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?里面有敏感数据吗?