SQL注入和XSS攻击
SQL注入
定义:黑客通过在请求的数据中填入特殊字符,影响服务器数据库操作程序正常执行,从而达到攻击的目的。
形式:
拼接SQL:
登录验证:前台输入 username:yan password:123’ or 1#
SQL语句:select * from user where username=’$username’ and password=’$password’
拼接后:select * from user where username=’yan ’ and password=’123’ or 1#’==>
防范:
- 加密(存密文,验证时穿密文) 123’ or ‘1-->0casdfh23uah15fjkj18ap
缺点:不可能对所有数据加密,除密码外其他字段也可以做手脚比如 yan’ or 1#=>’yan’ or 1#’(注释掉后面所有条件)
- 转义特殊字符
上述操作本质是利用了特殊字符’ 只需转义数据里的特殊字符就可以防范此类攻 击了。
123’ or 1#==>123\’ or 1
select * from user where username=’yan ’ and password=’123\’ or 1#’ //SQL报错
数字注入
用户id为1的用户点击删除
Delete from user where id =1
恶意用户 发起请求传入 1 or 1==>Delete from user where id = 1 or 1 (删除所有用户数据)
防范:将数字类型参数进行类型转换 1 or 1==>转换失败 无法执行恶意语句
结论:除了上面提到的用户密码验证,其他所有的请求数据都有可能成为攻击的目标,所以首先应该对所有请求数据进行安全处理,例如转义类型转换等。
XSS攻击
定义:XSS攻击通常指的是通过利用网页开发时留下的漏洞,通过巧妙的方法注入恶意指令代码到网页,使用户加载并执行攻击者恶意制造的网页程序。这些恶意网页程序通常是JavaScript,但实际上也可以包括Java、 VBScript、ActiveX、 Flash 或者甚至是普通的HTML。攻击成功后,攻击者可能得到包括但不限于更高的权限(如执行一些操作)、私密网页内容、会话和cookie等各种内容。
举例
下面是一个简单的php程序,前端表单提交数据,后端直接输出用户输入的内容
form.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form action="xss.php" method="post">
<input type="text" name="content" placeholder="输入内容"/>
<input type="submit" placeholder="提交"/>
</form>
</body>
</html><!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form action="xss.php" method="post">
<input type="text" name="content" placeholder="输入内容"/>
<input type="submit" placeholder="提交"/>
</form>
</body>
</html>
xss.php:
<?php
echo $_POST['content'];
恶意执行js:
输入内容:<script>alert(“你好啊”)</script>
获取cookie信息:
输入内容:<script>alert(document.cookie)</script>
破坏html页面:
输入内容:
<h1>XSS攻击</h1>
防范:
以上攻击的主要原理就是输入了前端代码标签侵入了前端代码,只须对<和>转义就可以防范此类攻击。
< 转义成 <
> 转义成 >
结论: 要防范SQL注入和XSS攻击,就需要对前端发来的请求数据中的特殊字符都进行转义。(如‘’和<>)
SQL注入和XSS攻击的更多相关文章
- yii框架各种防止sql注入,xss攻击,csrf攻击
PHP中常用到的方法有: /* 防sql注入,xss攻击 (1)*/ function actionClean($str) { $str=trim($str); ...
- 防止sql注入。xss攻击 方法
//防止sql注入.xss攻击 /** * 过滤参数 * @param string $str 接受的参数 * @return string */ publ ...
- 防止SQL注入和XSS攻击Filter
nbsp;今天系统使用IBM的安全漏洞扫描工具扫描出一堆漏洞,下面的filter主要是解决防止SQL注入和XSS攻击 一个是Filter负责将请求的request包装一下. 一个是request包装器 ...
- PHP防止SQL注入和XSS攻击
PHP防止SQL注入和XSS攻击PHP防范SQL注入是一个非常重要的安全手段.一个优秀的PHP程序员除了要能顺利的编写代码,还需要具备使程序处于安全环境下的能力.说到网站安全,就不得不提到SQL注入( ...
- SQL 注入、XSS 攻击、CSRF 攻击
SQL 注入.XSS 攻击.CSRF 攻击 SQL 注入 什么是 SQL 注入 SQL 注入,顾名思义就是通过注入 SQL 命令来进行攻击,更确切地说攻击者把 SQL 命令插入到 web 表单或请求参 ...
- Nginx 防止SQL注入、XSS攻击的实践配置方法
下班的时候,发现博客访问缓慢,甚至出现504错误,通过 top -i 命令查看服务器负载发现负载数值飙升到3.2之多了,并且持续时间越来越频繁直至持续升高的趋势,还以为是被攻击了,对来访IP进行了阈值 ...
- Node.js 项目中解决 SQL 注入和 XSS 攻击
1.SQL 注入 SQL 注入,一般是通过把 SQL 命令插入到 Web 表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的 SQL 命令. SQL 注入示例 在登录界面,后端会根 ...
- 解决 SQL 注入和 XSS 攻击(Node.js 项目中)
1.SQL 注入 SQL 注入,一般是通过把 SQL 命令插入到 Web 表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的 SQL 命令. SQL 注入示例 在登录界面,后端会根 ...
- 跨域、sql注入、xss攻击
这几天遇到这三个问题,现在简单的记录下来. 1.跨域 如我服务器的域名是www.test1.com,我在另一个服务器www.test2.com通过ajax访问www.test1.com的数据时,就引起 ...
随机推荐
- 尝试做一个.NET模板填充导出Excel工具
园友好,最近晚辈延续上篇后尝试进阶做成Excel模板填充数据生成工具 MiniExcel Template. 主要特点 同样以Stream流.延迟查询避免全部数据载入内存情况,做到1GB内存降低到只需 ...
- 奇异值分解(SVD)与主成分分析(PCA)
本文中的内容来自我的笔记.撰写过程中,参考了书籍<统计学习方法(第2版)>和一些网络资料. 第一部分复习一些前置知识,第二部分介绍奇异值分解(SVD),第三部分介绍主成分分析(PCA).以 ...
- uni-app 微信小程序授权登录
1.微信小程序 获取用户信息 与获取手机号 详细信息看官方公告:https://developers.weixin.qq.com/community/develop/doc/000cacfa20ce8 ...
- 序列化 pickle模块
1. pickle 简介 2. pickle 核心函数 3. pickle 高级 -- 复杂对象 1. 持久化与 pickle 简介 1.1 什么是持久化? 持久化的基本思想很简单.假定有一个 Pyt ...
- Algorithm(4th) 1.5 union-find算法
问题描述 问题输入是一对整数对,每个整数都代表一个对象,一对整数"p,q"表示 "p与q相连"(具有自反性,传递性,对称性,被归到一个等价类里),要求编写程序来 ...
- Methods
string.prototype.trim() The trim() method removes whitespace from both ends of a string. Whitespace ...
- 17- web测试面试题
- PDO 基础
为什么要使用PDO PDO是PHP5新加入的一个重大功能,我们的数据库服务器为MySQL,所有的程序代码的数据库操作全是一mysql()或者mysqli()函数来操作,当我们的数据库 需要更换时比如换 ...
- Spring初识及其IOC入门
一.框架 框架是一些类和接口的集合,它一个半成品,已经对基础的代码进行了封装并提供相应的API,开发者在使用框架时直接调用封装好的api可以省去很多代码编写,从而提高工作效率和开发速度. 二.Spri ...
- 路由选择协议(RIP/OSPF)
目录 IGP RIP协议 OSPF协议 IS-IS协议 EIGRP协议 EGP BGP 我们可能会想,在偌大的网络中,我们是如何跟其他人通信的呢?我们是如何跟远在太平洋对面的美国小伙伴对话的呢? 这就 ...