我在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请求。