本文档用于记录所遇到的网站安全问题,并分类汇总,方便后期遇到相似问题,可以快速找到解决方案,提升效率,让程序员有更多的时间去把妹,LOL...javascript
httponly是微软对cookie作的扩展,这个主要是解决用户的cookie可能被盗用的问题。
你们都知道,当咱们去邮箱或者论坛登录后,服务器会写一些cookie到咱们的浏览器,当下次再访问其余页面时,因为浏览器回自动传递cookie,这样就实现了一次登录就能够看到全部须要登录后才能看到的内容。也就是说,实质上,全部的登录状态这些都是创建在cookie上的!假设咱们登录后的cookie被人得到,那就会有暴露我的信息的危险!固然,想一想,其余人怎么能够得到客户的cookie?那必然是有不怀好意的人的程序在浏览器里运行!若是是如今满天飞的流氓软件,那没有办法,httponly也不是用来解决这种状况的,它是用来解决浏览器里javascript访问cookie的问题。试想,一个flash程序在你的浏览器里运行,就能够得到你的cookie的!php
session.cookie_secure = 1 session.cookie_httponly = 1
'COOKIE_SECURE' => true, // cookie 启用安全传输 'COOKIE_HTTPONLY' => true, // httponly设置
参考资料: http://www.jb51.net/article/1...html
暴力解决办法:注释掉对应信息java
咱们若是使用了apache服务器,当我访问http://xxx.xxx.xxx/icons/
时会自动显示这个目录下的因此文件列表,这行形成网站目录信息的泄露对咱们的网站安全形成威胁,在 关闭apache自动目录列表功能的三种方法 这篇文章中的三种方法都不能禁止自动目录列表,你若是使用网站安全监测,会提醒你发现目录启用了自动目录列表功能,因此咱们必须禁止它,通过测试,按以下步骤能够禁止:程序员
打开目录apache/conf/extra/下的文件httpd-autoindex.conf(位置可能有差别)
找到apache
Alias /icons/ "/xampp/apache/icons/" <Directory "/xampp/apache/icons"> Options Indexes MultiViews AllowOverride None Require all granted </Directory>
去掉Indexes改为windows
<Directory "/xampp/apache/icons"> Options MultiViews AllowOverride None Require all granted </Directory>
重启apache服务器!浏览器
暴力解决办法就是注释掉或者直接删除icons目录安全
在网站根目录目录下建立.htaccess文件,内容以下,若是您已有其余规则,请添加到第一条规则服务器
RewriteEngine On RewriteCond %{REQUEST_METHOD} ^(OPTIONS) RewriteRule .* - [F]
使用Apache的重写规则来禁用Options方法和Trace方法
在Apache配置文件httpd-conf中【vhosts-conf】添加如下代码:
RewriteEngine On RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK) RewriteRule .* - [F]
RewriteEngine On RewriteCond %{REQUEST_METHOD} ^(OPTIONS) RewriteRule .* - [F]
RewriteEngine On RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK|OPTIONS) RewriteRule .* - [F] <VirtualHost *:80> DocumentRoot "D:\wwwroot" ServerName www.abc.com ServerAlias abc.com <Directory "D:\wwwroot"> Options FollowSymLinks ExecCGI AllowOverride All Order allow,deny Allow from all Require all granted RewriteEngine on RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK|OPTIONS) RewriteRule .* - [F] </Directory> </VirtualHost>
同启用了OPTIONS方法处理方法相同RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK|OPTIONS)
或者在httpd.conf中添加配置:TraceEnable off
在httpd.conf里面增长Header always append X-Frame-Options SAMEORIGIN
修复方法:
<Directory "/var/www/html"> Options Indexes FollowSymLinks AllowOverride None Order allow,deny Allow from all </Directory>
options中Indexes表示当网页不存在的时候容许索引显示目录中的文件
将要设置的目录对应配置参数下的Indexes删除或者改成-Indexes(低版本可能会报错)
<Directory "/var/www/html"> Options FollowSymLinks AllowOverride None Order allow,deny Allow from all </Directory>
或者
<Directory "/var/www/html"> Options -Indexes FollowSymLinks AllowOverride None Order allow,deny Allow from all </Directory>
在httpd.conf里面增长Header always set X-Content-Type-Options nosniff
将参数AllowScriptAccess设置为never
致使页面空行
页面的编码若是是UTF-8 + BOM,会在body开头处加入一个可见的控制符,致使页面头部会出现一个空白。这种编码方式通常会在windows操做系统中出现,好比记事本编辑器,在保存一个以UTF-8编码的文件时,会在文件开始的地方插入三个不可见的字符(0xEF 0xBB 0xBF,即BOM)。它是一串隐藏的字符,用于让记事本等编辑器识别这个文件是否以UTF-8编码。对于通常的文件,这样并不会产生什么麻烦。但对于html来讲,BOM是个大麻烦。由于浏览器在解析html页面时,并不会忽略BOM,因此在解析html文件时,会把BOM做为该文件开头正文的一部分,这串字符也将会被直接执行(在页面中并不显示)出来。由此形成即便页面的 top或者padding 设置为0,也没法让整个网页紧贴浏览器顶部,由于在html一开头有这3个隐藏字符!
保存文件为utf-8