- 2
- 0
- 约9.15千字
- 约 15页
- 2017-02-02 发布于江苏
- 举报
深圳暴走科技:使用HTTP Headers 防御WEB攻击(一)
我们经常能够看到像Xss,点击劫持,会话劫持等各种攻击手法。在这个系列文章中,我们会介绍各种可用来防御常见Web攻击的HTTP头以及通过一个PHP实例来演示其实现方法。本系列文章旨在给开发者一个提示,如何使用HTTP头对一些攻击进行防御。
?
搭建试验环境
?
数据以及实验环境下载地址在文末!
?
你可以在XAMPP、WAMP、LAMP、MAMP下设置PHP-MYSQL应用,当然这个选择完全取决于你的喜好。
?
在本实验中,我使用的是搭载MAMP的苹果Mac机器,我把所以文件都放在了根目录下的“sample”文件夹内。
?
应用程序功能介绍
?
设置完这个实验样品之后,打开主页
?
http://localhost/sample/index.php
?
?
从上图中我们看以看到,这个页面就是一个简单的登录页面,它会进行基本的服务端验证。
?
用户输入字段不能为空,完成这个功能只需使用PHP的empty()函数。因此用户如果不输入点东西点击登录,会返回下面这个页面
?
?
如果输入的用户名密码不匹配的话,会返回以下页面,当然完成这一步骤是需要执行数据库查询操作的。
?
?
输入的用户密码正确,主页显示用户已登录。
?
如下所示,这是使用MySQLi准备语句完成的。
?
$stmt = $mysqli-prepare(select * from admin where username=? and password=?);
$stmt-bind_param(ss,$username,$password);
$stmt-execute();?
username: admin
password: 1q2w3e4r5t
注意:在这个示例中,给定的密码以SHA1算法方式存储在数据库中,这个密码使用在线工具可以轻松解出来。
?
登录进去之后会看到一个表单,这个表单含有一个简单的Xss漏洞。
?
?
现在我们进行抓包,当我们登陆时注意观察默认的Header信息。
?
?
?
在成功登录之后我们看到一个搜索框,这里接受用户输入并返回相关信息给用户。
?
?
下面是构建登录后页面的代码
?
?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
? ? ? ? titleAdmin Home/title
? ? ? ? link rel=stylesheet href=styles.css
? ? /head
? ? body
?
? ? ? ? ?div id=homecenter
? ? ? ? /brlegendtext id=texttext id=text2Welcome 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=textSearch Values/textinput type=text name=search id=textbox
/br/br
?
? ? ? ? ? ? ?input type=submit value=Search name=Search id=but/
?
? ? ? ? ? ? ?div id=errortext id=text2You Entered:/text?php echo $text; ?/div
?
? ? ? ? ? ? ?/div
? ? ? ? /form/center
? ? /div
?
? ? ?/body
/html
使用X-Frame-Options响应头防御点击劫持
?
首先我们要讨论的就是使用X-Frame-O
原创力文档

文档评论(0)