我应该保护用户的服务器脚本/文件,如果用户可以看到服务器文件,是否存在安全风险,该怎么做?

问题描述

我知道 .htaccess 不是最好的方法,但我无权访问其他服务器设置。

- index.PHP (root)
-- scripts (folder)
--- someScript.PHP (one of the scripts)

假设我有一个位于服务器 index.PHProot 文件,该文件scripts 文件夹中的脚本发出 ajax 请求,如果用户输入搜索domain.com/scripts/ 他现在可以访问该文件夹(我不知道是否可以从那里下载)。

我知道我可以使用 options -Indexes 但这仍然允许用户直接转到脚本,如果他们现在知道它的名称,这不难找到甚至猜测?

我知道的第二个选项是

<Files ~ "\.txt$">
    Order allow,deny
    Deny from all
</Files>

但这会阻止一切访问文件,甚至是 ajax 请求。

所以,我的问题是,我应该以某种方式保护这些文件吗?用户能否看到或下载他们的内容,是否存在安全风险?

解决方法

我应该以某种方式保护这些文件吗?

好吧,你真的不能,如果客户端请求它们(浏览器 AJAX 请求)就不能。

通过 AJAX(客户端)调用脚本时,通常会发送自定义 HTTP 请求标头,因此脚本知道如何响应此类请求并返回适当的响应。虽然这不提供“安全性”,但它确实可以防止对该脚本的随意请求执行任何操作。

用户能否看到或下载他们的内容,是否存在安全风险?

您提供的示例是一个 PHP 脚本。任何直接请求只会看到它的输出,不一定是它的内容。

唯一的安全风险是您所制造的。如果对该脚本的任意请求返回所有活动用户和个人信息的列表,那么是的,这显然存在安全风险。但是,如果响应为空并且调用该脚本后没有发生有害事件,那么这不是问题。