久久久久在线观看_又色又爽又黄的免费视频播放_一区中文字幕_日韩电影在线播放

今日頭條 焦點資訊 營銷之道 企業報道 淘寶運營 網站建設 軟件開發 400電話
  當前位置: 首頁 » 資訊 » 網站建設 » 正文

使用HTTP Headers 防御WEB攻擊(二)

放大字體  縮小字體 發布日期:2018-02-18  來源:新格網  作者:新格網  瀏覽次數:900  【去百度看看】
核心提示:在前一篇文章《使用HTTP Headers防御WEB攻擊(Part1)》中我們了解到如何使用X-Frame選項防御點擊劫持攻擊。在本文中我們將會討論另外一個HTTP Header選項,X-XSS-Protection。和前一篇文章類似,我們會先看看漏洞網頁然后再使用這個HTTP頭選項來防御。

在前一篇文章《使用HTTP Headers防御WEB攻擊(一)》中我們了解到如何使用X-frame選項防御點擊劫持攻擊。在本文中我們將會討論另外一個HTTP Header選項,X-XSS-Protection。和前一篇文章類似,我們會先看看漏洞網頁然后再使用這個HTTP頭選項來防御。

從源碼分析

設置與前一篇文章類似,用戶成功登錄之后會出現一個控制臺界面,這里可以進行搜索,如下代碼即實現代碼:

<?php
session_start();
session_regenerate_id();
if(!isset($_SESSION['admin_loggedin']))
{
    header('Location: index.php');
}
if(isset($_GET['search']))
{
    if(!empty($_GET['search']))
    {
        $text = $_GET['search'];
    }
    else
    {
        $text = "No text Entered";
    }
}
?>
<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>Admin Home</title>
        <link rel="stylesheet" href="styles.css">
    </head>
    <body>
 
        <div id="home"><center>
        </br><legend><text id=text><text id="text2">Welcome to Dashboard...</text>
</br></br> You are logged in as: <?php echo $_SESSION['admin_loggedin']; ?>
<a href="logout.php">[logout]</a></text></legend></br> <form action="" method="GET"> <div id="search"> <text id="text">Search Values</text><input type="text" name="search" id="textbox">
</br></br> <input type="submit" value="Search" name="Search" id="but"/> <div id="error"><text id="text2">You Entered:</text><?php echo $text; ?></div> </div> </form></center> </div> </body> </html>

從上面的代碼中,我們可以看到應用程序沒有對用戶輸入進行過濾而留下了漏洞。

接著,我們從HTTP響應頭信息中看到應用程序沒有任何額外的保護機制。

HTTP/1.1 200 OK
Date: Sun, 12 Apr 2015 14:53:37 GMT
Server: Apache/2.2.29 (Unix) mod_fastcgi/2.4.6 mod_wsgi/3.4 Python/2.7.8 PHP/5.6.2 mod_ssl/2.2.29 OpenSSL/0.9.8y DAV/2 mod_perl/2.0.8 Perl/v5.20.0
 
X-Powered-By: PHP/5.6.2
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Set-cookie: PHPSESSID=f94dc2ac2aa5763c636f9e75365102b5; path=/
Content-Length: 820
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: text/html; charset=UTF-8

測試進行時

在搜索框執行一個簡單的Javascript腳本,看看是否成功執行

Web攻擊 HTTPHeaders 網頁漏洞

好吧,我承認這看起來似乎沒有成功執行,那就打開控制臺看看錯誤信息吧。

Web攻擊 HTTPHeaders 網頁漏洞

從控制臺信息中可以看到谷歌Chrome阻止了這個腳本。另外,錯誤提示信息中指出服務器沒有啟用X-XSS-Protection或者Content-Security-Policy頭。

我們可以通過啟用X-XSS-Protection或者Content-Security-Policy頭進行過濾。

使用如下代碼禁用保護

  • header("X-XSS-Protection: 0");

將上面的代碼添加進源碼

<?php
session_start();
session_regenerate_id();
 
header("X-XSS-Protection: 0");
 
if(!isset($_SESSION['admin_loggedin']))
{
    header('Location: index.php');
}
if(isset($_GET['search']))
{
    if(!empty($_GET['search']))
    {
        $text = $_GET['search'];
    }
    else
    {
        $text = "No text Entered";
    }
}
?>
<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>Admin Home</title>
        <link rel="stylesheet" href="styles.css">
    </head>
    <body>
 
        <div id="home"><center>
        </br><legend><text id=text><text id="text2">Welcome to Dashboard...</text>
</br></br> You are logged in as: <?php echo $_SESSION['admin_loggedin']; ?>
<a href="logout.php">[logout]</a></text></legend></br> <form action="" method="GET"> <div id="search"> <text id="text">Search Values</text><input type="text" name="search" id="textbox">
</br></br> <input type="submit" value="Search" name="Search" id="but"/> <div id="error"><text id="text2">You Entered:</text><?php echo $text; ?></div> </div> </form></center> </div> </body> </html>
 
 
[ 資訊搜索 ]  [ 加入收藏 ]  [ 告訴好友 ]  [ 打印本文 ]  [ 違規舉報 ]  [ 關閉窗口 ]

 
0條 [查看全部]  相關評論

 
網站首頁 | 關于我們 | 聯系方式 | 使用協議 | 版權隱私 | 網站地圖 | 排名推廣 | 廣告服務 | 積分換禮 | 網站留言 | RSS訂閱 | 吉ICP備11001726號-6
企業800網 · 提供技術支持