web安全nginx需设置HTTP header参数及phpcms设置CSP的缘由及注意事
Author:zhoulujun Date:
X-Frame-Options:主要还是为了防止click hack,参看《再谈Hijacking——JavaScript ClickJacking原理浅析》。因为phpcms的登录、评论及后台管理都是frame内嵌的。所以,这里设置为sameorgin(同源),公司项目的话最好设置为deny
add_header X-Frame-Options SAMEORIGIN;
X-Content-Type-Options:提示客户端一定要遵循在 Content-Type 首部中对 MIME 类型 的设定,而不能对其进行修改。这就禁用了客户端的 MIME 类型嗅探行为
add_header X-Content-Type-Options nosniff;
Strict-Transport-Security:这个网站禁止使用HTTP方式加载。最先开始的时候,我觉得这个是然并卵,后台直接强制把http跳转到https即可。但是,按照官方的意识,这个让浏览器强制使用https连接(防止中间人攻击),看来看去,还是觉得鸡肋,然后中间http劫持了,都没有到你的服务器(浏览器都没有收到你的返回值)有啥用?
X-XSS-Protection:浏览器xss保护开关。浏览器默认就是禁了xss,或许测试的时候可以用到——关闭xss保护机制。对于ie,推荐阅读《利用IE8/9浏览器XSS跨站攻击脚本筛选过滤特性(X-XSS-Protection)》。关于要不要开启,推荐阅读《The misunderstood X-XSS-Protection》
add_header X-Xss-Protection 1;
Content-Security-Policy:如果对CSP不明觉厉的,请先读《前端安全配置xss预防针Content-Security-Policy(csp)配置详解》
add_header Content-Security-Policy "default-src 'self'; script-src 'self' 'unsafe-inline' cache.zhoulujun.cn *.baidu.com; img-src 'self' ; style-src 'self' 'unsafe-inline' cache.zhoulujun.cn; frame-src 'seff' *.baidu.com;
之前写了很多关于CSP的文章,只是在公司的项目中使用。但是自己的网站CSP策略却没有设置。然后发现,由于老旧的phpcms系统现在已经停摆不升级了(但是从2008年起一直用这个后台管理系统),里面还是有蛮多安全问题的。今天先把eval干掉先!
JavaScript中的eval()不安全,可能会被利用做XSS攻击(跨站脚本攻击(Cross Site Scripting)),eval也存在一个安全问题,因为它可以执行传给它的任何字符串,所以永远不要传入字符串或者来历不明和不受信任源的参数。
eval会运行编译器,影响性能。
eval是evil,但是 settimeout, setinterval,new Function 等实际间接调用了eval函数
而该死的phpcms中使用大量的eval函数。比如处理JSON串
phpcms/modules/video/templates/video_list.tpl.php 87行
data = eval('(' + data + ')');
下面是phpcms使用eval的地方,不使用phpcms的可以跳过。
phpcms/modules/admin/templates/role_priv.tpl.php 12行
对应的界面为 设置-》角色管理-》权限管理
此处eval改为parseInt
phpcms/modules/block/templates/block_update.tpl.php
对于为碎片管理,这里因为一般是禁止的,所以没有过多研究,直接改为
eval("var d = "+obj+";");
这为广告位,这个模块不需要,大多采用广告联盟或者定制的广告。所以懒得改
phpcms/modules/video/templates/video_list.tpl.php
此模块为视频模块,eval的作用相当于 JSON.parse。这里我没有改。需要改的自便。
余下的也是如此
至于nginx的
$uri导致的CRLF注入漏洞、目录穿越漏洞、Http Header被覆盖的问题
推荐阅读:《三个案例看Nginx配置安全》
以及nginx 防止sql
其实nginx不具备防止sql注入的功能,但是nginx可以过滤url
推荐阅读:《nginx服务器防sql注入与溢出》
其它的,后续在整理……
最近发现,很多文章,都没有空写完……
哎……,其它娃快点长大
参考文章:
转载本站文章《web安全nginx需设置HTTP header参数及phpcms设置CSP的缘由及注意事》,
请注明出处:https://www.zhoulujun.cn/html/php/phpcms/2018_0719_8130.html