如何保护处理Jquery数据的敏感PHP文件?

如何保护处理Jquery数据的敏感PHP文件?,php,jquery,security,file,Php,Jquery,Security,File,在我的网站上,我有一个search.php页面,可以生成$。获取对search\u data.php和search\u user\u data.php等页面的请求 问题是所有这些文件都位于我的公共html文件夹中 尽管有人可以浏览www.mysite.com/search\u user\u data.php,所有处理过的数据都经过了正确的转义和处理,但从专业角度来看,这还不足以让这个文件公开 我已经尝试将敏感文件移动到我的web根目录,但是由于Jquery正在生成$。get请求并在URL中传递变

在我的网站上,我有一个
search.php
页面,可以生成
$。获取
search\u data.php
search\u user\u data.php
等页面的请求

问题是所有这些文件都位于我的公共html文件夹中

尽管有人可以浏览
www.mysite.com/search\u user\u data.php
,所有处理过的数据都经过了正确的转义和处理,但从专业角度来看,这还不足以让这个文件公开

我已经尝试将敏感文件移动到我的web根目录,但是由于Jquery正在生成
$。get
请求并在URL中传递变量,这不起作用


有人知道有什么方法可以确保这些易受攻击的页面的安全吗?

您可以在每次加载页面时存储uid,并将其存储在$\u会话['uid']中。通过执行以下操作将此uid赋予javascript:

var uid = <?php print $_SESSION['uid']; ?>;
如果可以,做你需要的


这并不完美,因为有人可以请求search.php并获取当前uid,然后请求其他页面,但这可能是最好的解决方案。

您可以在每次加载页面时存储uid,并将其存储在$\u会话['uid']。通过执行以下操作将此uid赋予javascript:

var uid = <?php print $_SESSION['uid']; ?>;
如果可以,做你需要的


这并不完美,因为有人可以请求search.php并获取当前uid,然后请求其他页面,但这可能是最好的解决方案。

您所描述的是正常的

您可以在www目录中访问PHP文件,以便apache(或您喜欢的Web服务器)可以读取和处理它们。 如果你把他们搬出去,你就再也联系不到他们了,所以没有那种真正的选择

在AJAX的所有PHP文件都只是普通的PHP文件之后,您的其他项目可能也包含PHP文件。正当它们的风险并不比服务器上的任何脚本都大或小

确保你的程序“干净”。在编写php函数时,而不是在编写之后,请考虑恶意请求。 正如您已经做的那样:正确引用所有可能命中数据库或敏感函数的传入输入

如果你发现有人在尝试邪恶的东西,你可以在你的输入值上添加安全检查,并创建一封自动电子邮件。因此,在这种情况下,您可能会收到警告。 但缺点是:你会经常收到警告,因为有些公司会自动扫描网站,寻找可能的漏洞。因此,您也会收到有关此类扫描的警告

在尽可能“安全”地编写代码的基础上,您可能希望在代码中添加一个referer检查。这意味着您的PHP文件只有在您的网站在访问时被指定为referer时才会做出反应。这足以阻挡80%的孩子。 但缺点是:一些互联网用户根本不发送推荐信,一些代理会过滤掉。(我个人会忽略它们,不管怎样,有一半的(www)互联网会在它们身上中断)


htaccess还可以添加一层保护,您可以在PHP中完成大部分工作,但您可能仍然感兴趣:

您所描述的是正常的

您可以在www目录中访问PHP文件,以便apache(或您喜欢的Web服务器)可以读取和处理它们。 如果你把他们搬出去,你就再也联系不到他们了,所以没有那种真正的选择

在AJAX的所有PHP文件都只是普通的PHP文件之后,您的其他项目可能也包含PHP文件。正当它们的风险并不比服务器上的任何脚本都大或小

确保你的程序“干净”。在编写php函数时,而不是在编写之后,请考虑恶意请求。 正如您已经做的那样:正确引用所有可能命中数据库或敏感函数的传入输入

如果你发现有人在尝试邪恶的东西,你可以在你的输入值上添加安全检查,并创建一封自动电子邮件。因此,在这种情况下,您可能会收到警告。 但缺点是:你会经常收到警告,因为有些公司会自动扫描网站,寻找可能的漏洞。因此,您也会收到有关此类扫描的警告

在尽可能“安全”地编写代码的基础上,您可能希望在代码中添加一个referer检查。这意味着您的PHP文件只有在您的网站在访问时被指定为referer时才会做出反应。这足以阻挡80%的孩子。 但缺点是:一些互联网用户根本不发送推荐信,一些代理会过滤掉。(我个人会忽略它们,不管怎样,有一半的(www)互联网会在它们身上中断)


htaccess还可以添加一层保护,您可以在PHP中完成大部分工作,但您可能仍然感兴趣:

@zerkms,因此每个网页上存在的所有文件都应该没有任何隐私?PHP不会向公众公开,因此是“服务器端语言”。它被执行,结果被输出。@andrewjackson是的,但我不想让任何人有机会通过执行类似于
search\u data.php?id=394&pass=493202
的操作来玩弄url。这不合理吗?嗯,有没有版主能解释一下为什么我的评论被删除了?@zerkms这样每个网页上存在的所有文件都应该没有任何隐私?PHP不会向公众公开,因此是“服务器端语言”。它被执行,结果被输出。@andrewjackson是的,但我不想让任何人有机会通过执行类似于
search\u data.php?id=394&pass=493202
的操作来玩弄url。这不合理吗?嗯,有谁能解释一下为什么我的评论被删除了吗?我应该补充一点:当我发出ajax请求并且用户在我的服务器上有一个帐户时,我通常会传递一个用户ID和一个md5hash密码(还有一些salt)。也就是说,您可以很容易地看到ajax请求是否来自合法用户。我应该补充:当我发出ajax请求并且用户在我的服务器上有一个帐户时,我通常会传递一个用户ID和pa的md5hash