Ajax——安全漏洞?——PHP


Ajax - security breach? - PHP

我在php中建立了一个系统,我有页面名称x.p p在这个页面中,我创建了变量名$accountid,并从会话中获取帐户id。

现在我在同一页的PHP中有其他变量,这些变量调用其他页面中称为functions. PHP的函数,并传递accountid,该函数返回有关帐户的信息(例如用户的名称..)

是否存在安全漏洞?

我的意思是用户可以在ajax调用函数与其他accountid,然后他可以得到关于其他帐户的信息?

下面是代码示例:
<?php 
    include "Includs/Config.php";
    if(!isset($_SESSION[get("session_name")])) { 
            header("Location: index.php");
    }
    $accountid = getAccountid($_SESSION[get("session_name")]);
    $e = getECategorys($accountid);
?>

function getE($accountId){
    $query = mysql_query("SELECT * FROM `x` WHERE `accountid` = $accountId");   
    while($result = mysql_fetch_assoc($query)){
        // get the info about the account..
    }
}

你是对的。用户可以通过向该函数传递另一个accountId来获取信息。解决方案:您所能做的就是检查会话变量和传入的accountId。如果会话变量(accountId)与传递给该函数的accountId匹配,则只检索数据,否则给出错误。

第二种解决方案是通过类基实现,设置accountId的私有成员变量。

我不确定,似乎你从$_SESSION中获得accountId,所以这似乎是安全的。

另外,用户不能直接使用ajax调用php函数。

实际上,您不应该将AJAX视为简单的HTTP请求。