安全防御之防xss、SQL注入、与CSRF攻击
XSS攻击
- 个人理解,项目中最普通的就是通过输入框表单,提交js代码,进行攻击
例如在输入框中提交 <script>alert("我是xss攻击");</script>,如果没有防
御措施的话,就会在表单提交之后,弹出弹窗 - 防御措施,目前我主要是用一个过滤器,将特殊字符进行转义
- 代码部分
SQL注入攻击
- 个人理解,通过提交sql代码,进行攻击,轻则不需要用户名密码可登录系统,
重则拿到你数据库核心数据 - 防御措施,项目使用的不同数据库连接框架有不同的方法防御,如果是javaweb
正常使用PreparedStatement预编译,可进行防御
mybatis则优先使用 #{}。因为 ${} 会导致 sql 注入的问题
参考连接https://www.2cto.com/database/201709/676537.html - 代码部分(这里使用javaweb的时候代码)
public boolean login(String username,String password) throws ClassNotFoundException, SQLException{
/**
* 1.得到Connection
* 2.得到Statement
* 3.得到ResultSet
* 4.rs.next()返回的是什么,我们就返回什么
*
*/
//准备四大参数
String DriverClassName = "com.mysql.jdbc.Driver";
String url = "jdbc:mysql://localhost:3306/mydb3";
String user = "root";
String pwd = "root";
Class.forName(DriverClassName);
Connection conn = DriverManager.getConnection(url, user, pwd);
/**
* 二、得到Statement
*/
Statement stmt = conn.createStatement();
String sql ="select * from t_user where username='"+username+"' and password ='"+password+"'";
//System.out.println(sql);
ResultSet rs = stmt.executeQuery(sql); return rs.next();
}@Test
public void fun1() throws ClassNotFoundException, SQLException{
String username="a' or 'a'='a";
String password="a' or 'a'='a";
boolean bool=login(username,password);
System.out.println(bool);
}这里的sql语句是
select * from t_user where username='a' or 'a'='a' and password ='a' or 'a'='a'
这就是sql注入攻击的演示
CSRF攻击
安全防御之防xss、SQL注入、与CSRF攻击的更多相关文章
- 浅析history hack、心血漏洞、CSS欺骗、SQL注入与CSRF攻击
漏洞产生的原因主要有系统机制和编码规范两方面,由于网络协议的开放性,目前以 Web 漏洞居多 关于系统机制漏洞的典型有JavaScript/CSS history hack,而编码规范方面的漏洞典型有 ...
- 一文搞懂│XSS攻击、SQL注入、CSRF攻击、DDOS攻击、DNS劫持
目录 XSS 攻击 SQL 注入 CSRF 攻击 DDOS 攻击 DNS 劫持 XSS 攻击 全称跨站脚本攻击 Cross Site Scripting 为了与重叠样式表 CSS 进行区分,所以换了另 ...
- PHP开发中常见的安全问题详解和解决方法(如Sql注入、CSRF、Xss、CC等
页面导航: 首页 → 网络编程 → PHP编程 → php技巧 → 正文内容 PHP安全 PHP开发中常见的安全问题详解和解决方法(如Sql注入.CSRF.Xss.CC等) 作者: 字体:[增加 减小 ...
- 常见的网络攻击(XSS,SQL注入,CSRF)
一.XSS 二.SQL注入 三.CSRF
- csrf xss sql注入
1.输入框 sql注入 测试直接在输入框输入1' ,看sql会不会拼接出错 xss攻击 csrf攻击 测试直接在输入框输入 <script>alert(123)</script> ...
- 安全漏洞XSS、CSRF、SQL注入以及DDOS攻击
随着互联网的普及,网络安全变得越来越重要,程序员需要掌握最基本的web安全防范,下面列举一些常见的安全漏洞和对应的防御措施. 0x01: XSS漏洞 1.XSS简介 跨站脚本(cross site s ...
- Django csrf,xss,sql注入
一.csrf跨站请求伪造(Cross-site request forgery) CSRF的攻击原理:简单说就是利用了高权限帐号(如管理员)的登录状态或者授权状态去做一些后台操作,但实际这些状态并没有 ...
- 记录一次网站漏洞修复过程(三):第二轮处理(拦截SQL注入、跨站脚本攻击XSS)
在程序编写的时候采用参数化的SQL语句可以有效的防止SQL注入,但是当程序一旦成型,再去修改大量的数据库执行语句并不是太现实,对网页表单上输入进行校验是易于实现的方法.在webForm 页面中开启校验 ...
- sql注入、csrf
◎sql注入产生的原因?又如何防御sql注入? SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令.具体来说,它是利用现有应用 ...
随机推荐
- [loj539]旅游路线
考虑枚举加油的位置,当确定某次在第$i$个位置加油后,且下一次到$j$加油,那么$i$到$j$必然会选择不超过$c_{i}$条边且最长的路径,记作$d_{i,j}$ 如果能求出$d_{i,j}$,再设 ...
- Redis 源码简洁剖析 02 - SDS 字符串
C 语言的字符串函数 C 语言 string 函数,在 C 语言中可以使用 char* 字符数组实现字符串,C 语言标准库 string.h 中也定义了多种字符串操作函数. 字符串使用广泛,需要满足: ...
- asList和subList的缺陷
概述 在开发中我们经常使用asList去把一个数组转换为List.也存在通过subList.subMap.来对List.Map.Set来进行类似使用subString方法来对String对象进行分割处 ...
- SpringBoot引入第三方jar的Bean的三种方式
在SpringBoot的大环境下,基本上很少使用之前的xml配置Bean,主要是因为这种方式不好维护而且也不够方便. 因此本篇博文也不再介绍Spring中通过xml来声明bean的使用方式. 一.注解 ...
- AtCoder Beginner Contest 188题解
A 题意 问\(x,y\)相差是否小于\(3\) #include<iostream> #include<cstdio> #include<cmath> #defi ...
- BaiduPCS-Go----百度云下载工具
1.网页登录百度网盘:https://pan.baidu.com/2.百度输入法生成:http://pcs.baidu.com/rest/2.0/pcs/file?app_id=265486& ...
- windows和linux文本的编码格式不一样所出的错
windows下编写的python脚本上传的linux下执行会出现错误: usr/bin/python^M: bad interpreter: No such file or directory 原因 ...
- socket编程:多路复用I/O服务端客户端之select
其实在之前的TCP之中,我们编程实现了多进程,多线程机制下的TCP服务器,但是对于这种的TCP服务器而言,存在太大的资源局限性.所以我们可以是用I/0模型中的多路复用I/O模型来进行编程. 他的具体思 ...
- “equals”有值 与 “==”存在 “equals”只是比较值是否相同,值传递,==地址传递,null==a,避免引发空指针异常,STRING是一个对象==null,对象不存在,str.equals("")对象存在但是包含字符‘''
原文链接:http://www.cnblogs.com/lezhou2014/p/3955536.html "equals" 与 "==" "equa ...
- Volatile的3大特性
Volatile volatile是Java虚拟机提供的轻量级的同步机制 3大特性 1.保证可见性 当多个线程同时访问同一个变量时,一个线程修改了这个变量的值,其他线程能够立即看得到修改的值 案例代码 ...