我正在使用OWASP ZAP对我的localhost进行一些渗透测试,并且它会不断报告此消息:
Anti-MIME-Sniffing标头X-Content-Type-Options未设置为'nosniff'
此检查特定于Internet Explorer 8和Google Chrome.如果Content-Type标头未知,请确保每个页面设置Content-Type标头和X-CONTENT-TYPE-OPTIONS
我不知道这意味着什么,我在网上找不到任何东西.我试过添加:
<meta content="text/html; charset=UTF-8; X-Content-Type-Options=nosniff" http-equiv="Content-Type" />
Run Code Online (Sandbox Code Playgroud)
但我仍然得到警报.
设置参数的正确方法是什么?
我有一个用户可以上传文件的目录.
为了避免安全问题(例如有人上传恶意php脚本),我目前通过附加.data来更改文件的扩展名,但是在下载文件时,他们必须手动删除.data.
另一个常见的解决方案是将文件上传到Apache不提供的目录中,并使用php脚本通过调用来管理所有下载readfile().
我想做的是简单地禁止在upload文件夹中执行任何脚本(php,perl,cgi脚本,以及我将来可能安装的任何脚本).这个SO答案建议.htaccess在该文件夹的文件中添加以下行:
SetHandler default-handler
Run Code Online (Sandbox Code Playgroud)
但是,在我的情况下,这没有任何效果(我放在该文件夹中的示例php脚本仍然执行).我究竟做错了什么?
这台机器是运行的VPS(虚拟专用服务器)Debian GNU/Linux 6.0.7 (squeeze),据我所知(我记下我在该服务器上运行的所有命令,因此我的"内存"应该非常准确),我不会改变apache2中的任何内容配置,运行appart sudo apt-get install php5,以及/etc/apache2/sites-enabled/mysite.com使用以下内容创建文件:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName mysite.com
ServerAlias www.mysite.com
DocumentRoot /home/me/www/mysite.com/www/
<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
<Directory /home/me/www/mysite.com/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from All
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg. …Run Code Online (Sandbox Code Playgroud) 对于我的Web应用程序,人们可以将图像从Web表单上传到我的Web服务器.
我应该为该图像上载目录设置CHMOD设置,以便人们可以将图像(从Web服务器)上载到该目录,但出于安全原因不能执行他们上载的任何文件.
chmod设置会是吗?:
chmod 744 directory/
Run Code Online (Sandbox Code Playgroud) 我无法想象为什么我应该使用这个函数而不是简单的重命名。
手册写道:
移动上传文件
该函数检查以确保 filename 指定的文件是有效的上传文件(意味着它是通过 PHP 的 HTTP POST 上传机制上传的)。如果文件有效,它将被移动到目标指定的文件名。
如果对上传文件所做的任何操作有可能向用户甚至同一系统上的其他用户泄露其内容,则这种检查尤其重要。
您能写一个例子为什么这如此重要吗?