apache - 我应该保护用户的服务器脚本/文件吗?如果用户可以看到服务器文件是否存在安全风险,该怎么做?
问题描述
我知道.htaccess
这不是最好的方法,但我无权访问其他服务器设置。
- index.php (root)
-- scripts (folder)
--- someScript.php (one of the scripts)
因此,假设我有一个index.php
位于root
服务器的文件,该文件向文件夹中的脚本发出 ajax 请求scripts
,如果用户在搜索栏中键入,domain.com/scripts/
他现在可以访问该文件夹(我不知道他们是否可以从那里下载或不下载)。
我知道我可以使用options -Indexes
,但这仍然允许用户直接进入脚本,如果他们现在知道它的名称,这不难找到甚至猜测?
我知道的第二个选项是
<Files ~ "\.txt$">
Order allow,deny
Deny from all
</Files>
但这会阻止一切访问文件,甚至是 ajax 请求。
所以,我的问题是,我应该以某种方式保护这些文件吗?用户能否看到或下载他们的内容,是否存在安全风险?
解决方案
我应该以某种方式保护这些文件吗?
好吧,如果客户端请求它们(浏览器 AJAX 请求),你真的不能。
通过 AJAX(客户端)调用脚本时,通常会发送自定义 HTTP 请求标头,因此脚本知道如何响应此类请求并返回适当的响应。虽然这没有提供“安全性”,但它确实可以防止对该脚本的临时请求执行任何操作。
用户能否看到或下载他们的内容,是否存在安全风险?
您给出的示例是一个 PHP 脚本。任何直接请求只会看到它的输出,不一定看到它的内容。
唯一的安全风险是你所做的。如果对该脚本的任意请求返回所有活动用户和个人信息的列表,那么是的,这显然是一个安全风险。但是,如果响应为空并且调用该脚本没有发生有害事件,那么这不是问题。
推荐阅读
- node.js - 我需要一些帮助来运行我的第一个开源项目
- node.js - Express 内置解析器返回空的 req.body
- python-3.x - Django 从 FK 的 FK 获取内容
- c - 为结构中的二维数组分配内存
- python - Python - Tkinter Double 和 UNDO 按钮
- python - 如何防止循环导入异常
- json - 镖。解码 json double 给出 null
- r - R - 从各种 url 导入和格式化多个表
- r - 向上合并行,而在列的单元格中缺少值
- mysql - 在 MySQL 中使用 LAG 和 GROUP BY 获取每个 ID 的最后三个动作