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简介
CSRF,Cross Site Request Forgery,即跨站点请求伪造
它是一种常见的Web攻击,也是Web安全中最容易被忽略的一种攻击方式
CSRF的攻击建立在浏览器与Web服务器的会话中 欺骗用户访问URL
CSRF防御机制
二次确认:删除用户、转账、更改密码时,要求用户输入二次密码;
Referer:在接收请求的服务端判断请求的Referer头是否为正常的发送请求的页面,如果不是,则进行拦截;
Token认证:Token类似于“验证码”,但是这种验证码不需要输入。当用户登录登录后,服务器端会随机产生一段字符串分配给用户,并存储在Session中,当用户进入某些页面时,直接传递在用户界面或者Cookie中