我在php中构建了一个系统,我的页面名称是x.php 在这个页面中我创建变量名$ accountid并从sesstion获取acocunt id。
现在我在php中的其他变量在同一页面上调用其他页面中称为functions.php的函数,并传递accountid,函数返回有关该帐户的信息(例如用户名...)
这是安全漏洞吗?
我的意思是用户可以使用其他帐户调用ajax到该功能,然后他可以获得有关其他帐户的信息吗?
这是代码示例:
<?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..
}
}
答案 0 :(得分:0)
是的,你是对的。用户可以通过将另一个accountId传递给该函数来获取信息。 解决方案:您所能做的就是检查会话变量并通过accountId。您可以放置条件,如果会话变量(accountId)与传递给该函数的accountId匹配,则只检索数据,否则会出错。
第二个解决方案是使用类库来实现这个功能,设置accountId的私有成员变量。
希望这有帮助。
答案 1 :(得分:0)
我不确定,您似乎从accountId
获得$_SESSION
所以这似乎是安全的。
此外,用户无法使用ajax直接调用php函数。
实际上,除了简单的HTTP请求之外,您不应该将AJAX视为其他内容。