本文檔用於記錄所遇到的網站安全問題,並分類彙總,方便後期遇到相似問題,可以快速找到解決方案,提升效率,讓程序員有更多的時間去把妹,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