XSS总结

HTML基本语法

HTML 标签是由尖括号包围的关键词,比如 <html>

HTML 标签通常是成对出现的,比如 <b> </b>

标签对中的第一个标签是开始标签,第二个标签是结束标签

开始和结束标签也被称为开放标签闭合标签

<!DOCTYPE html> <!-- 声明这是HTML5文档 -->

<html> <!-- HTML有两部分组成,head部分与body部分 -->

          <head>

                       <meta charset="utf-8"> <!-- 指定编码方式 -->

                        <title>我是文章标题</title>

          </head>

          <body>

                       <h2>我是2号标题</h2>

                       <input type='text' name='input' placeholder="我是文本输入框">

                      <input type='submit' value='我是确定按钮'>

        </body>

</html>

CSS基本语法

<!DOCTYPE html> 
<html> 
	<head>
		<meta charset="utf-8"> 
		<title>我是文章标题</title>
		<style type="text/css">
			/* 设置CSS样式 */
			h2 {
				color:red; font-size: 14px;
			}
		</style>
	</head>
	<body>
		<h2>我是2号标题</h2>
		<input type='text' name='input' placeholder="我是文本输入框">
		<input type='submit' value='我是确定按钮'>
	</body>
</html>

JavaScript基本语法

<!DOCTYPE html> 
<html> 
	<head>
		<meta charset="utf-8"> 
		<title>我是文章标题</title>
		<script type="text/javascript">
			//弹窗
			alert('hello world');
		</script>
			
	</head>
	<body>
		<h2>我是2号标题</h2>
		<input type='text' name='input' placeholder="我是文本输入框">
		<input type='submit' value='我是确定按钮'>
	</body>
</html>

写个PHP文件

<?php

$input = $_GET['param'];
echo $input;
?>

然后在浏览器上输入?param=1

再提交如下一段JavaScript代码: <script>alert(1)</script>

可以发现,<script>alert(1)</script>这段代码在当前页面执行了;如果用户的输入提交后触发了弹窗,那么就说明存在XSS

XSS分类

反射型XSS,也叫做“非持久型XSS”,只是简单的把用户输入的数据“反射”给浏览器;

存储型XSS,也叫做“持久型XSS”,会把用户输入的数据“存储在”服务器端。常见的场景是,黑客写下一篇含有恶意JavaScript代码的博客文章,文章发表后,所有访问该博客文章的用户,都会在他们的浏览器中执行这段恶意的JavaScript代码;

DOM Based XSS,从效果来说也是反射型XSS,单独划分出了是因为DOM Based XSS的形成原因比较特殊,通过修改页面的DOM节点形成的XSS

举个DOM Based XSS的栗子

<!DOCTYPE html>

<html>
<head>
	<title></title>
	<script type="text/javascript">
		function test(){
			//getElementById():查找并定位id元素
			//定义一个变量str,获取id为text的值
			var str = document.getElementById("text").value;
			//将超链接写入id为t的标签中
			document.getElementById("t").innerHTML = "<a href='" + str + "' >testLink</a>";
		}

	</script>
</head>
<body>
	<div id="t"></div>
	<input type="text" id="text">
	<input type=“submit” value=“write” onclick=“test()”> <!– 当点击按钮时,会触发JavaScript的test函数 -->
</body>
</html>

输入后,页面代码就变成了<a href=‘ ‘ οnclick=alert(1)//’ >testLink</a>

CSRF简介

CSRFCross Site Request Forgery,即跨站点请求伪造

它是一种常见的Web攻击,也是Web安全中最容易被忽略的一种攻击方式

CSRF的攻击建立在浏览器与Web服务器的会话中  欺骗用户访问URL

CSRF防御机制

二次确认:删除用户、转账、更改密码时,要求用户输入二次密码;

Referer:在接收请求的服务端判断请求的Referer头是否为正常的发送请求的页面,如果不是,则进行拦截;

Token认证:Token类似于“验证码”,但是这种验证码不需要输入。当用户登录登录后,服务器端会随机产生一段字符串分配给用户,并存储在Session中,当用户进入某些页面时,直接传递在用户界面或者Cookie

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值