mur*_*uru 5 fastcgi .htaccess http-headers php-fpm apache-2.4
我有一台运行 Apache + PHP-FPM + FastCGI 的 Ubuntu 14.04 服务器,为用户主页提供服务。为了安全起见,我在 Apache 的配置中启用了:
Header set X-Content-Type-Options: "nosniff"
Header set X-Frame-Options: "sameorigin"
Header set X-XSS-Protection: "1; mode=block"
Run Code Online (Sandbox Code Playgroud)
AllowOverride FileInfo已设置,因此用户可以Header在.htaccess需要时使用文件中的指令进行更多控制。但是,Apache 似乎不尊重在 CGI 中使用 PHP 时(当文件为 PHP 时 mod_headers 不发送标头),并且即使使用Header always,.htaccess HeaderPHP 文件的命令也会被忽略。
我的下一个想法是让用户修改他们的 PHP 代码以使用PHPheader函数,以便他们可以将其设置为 X,并且setifempty只有在用户没有时我才能使用它。经过一些试验,我发现这些条目有效:
Header set X-Frame-Options: "sameorigin" env=!SCRIPT_NAME
Header always setifempty X-Frame-Options: "sameorigin" env=SCRIPT_NAME
Run Code Online (Sandbox Code Playgroud)
在没有env测试的情况下,我发现第一个命令,即使是setifempty, or merge,也会添加一个标题,因此您会X-Frame-Options在标题中看到两个。
现在,这是解决这个问题的正确方法吗?如果env=SCRIPT_NAME测试足够,或者是否有更好的测试来确定请求将由 PHP-FPM/FastCGI 还是 Apache 本身处理?
| 归档时间: |
|
| 查看次数: |
3381 次 |
| 最近记录: |