gpt4 book ai didi

php - 当使用 jQuery 的 .load 函数加载页面时保护 php

转载 作者:行者123 更新时间:2023-12-01 08:17:26 26 4
gpt4 key购买 nike

我的索引页 (index.php?profile=profilename_here) 使用 jQuery 的 load() 函数以正常方式将内容加载到 div 中,一切正常。

$().ready(function() {
$('#details').load('pages/sidebar/details.php?profile=<?PHP echo $profile;?>').fadeIn(2000);
});

然后在我的pages/sidebar/details.php中我有MySQL查询。

$result = mysql_query("SELECT * FROM public_profile WHERE username='$profile'") or die(mysql_error());  

所有的 php 内容都是安全的,我正在清理所有变量,因为我应该这样做......但是如果有人去“pages/sidebar/details.php?profile=”并更改配置文件名称,他们将会调出其他人的详细信息。

是否可以检查页面是否已通过 .load() 加载,如果没有,则停止页面加载或脚本执行?

最佳答案

如果您只想在使用 ajax 请求页面时运行代码,请使用

if ($_SERVER['HTTP_X_REQUESTED_WITH'] === 'XMLHttpRequest') { 
/* run this if requested by ajax */
}

不幸的是,这并没有使它更加安全,因为任何人都可以使用像 firebug 这样的开发工具来更改代码中的 URL。如果您只想让当前用户查看自己的个人资料,您可以将 $profile 存储在 $_SESSION 中,这样他们就无法直接访问 URL 参数。

查看OWASP's SQL Injection Prevention Cheatsheet一些清理数据的方法,尽管我不认为 PHP 特有什么。

关于php - 当使用 jQuery 的 .load 函数加载页面时保护 php,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9620101/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com