JAVA 安全性转码代码(包括sql注入,跨站脚本)

例子:

column_type = SecurityString.getHtml(column_type);
column_type = SecurityString.getValidSQLPara(column_type);

实现:

 1     public class SecurityString {
 2
 3         public static String getHtml(String str) {
 4             //过滤敏感字符
 5             str = filter(str);
 6             if (str != null) {
 7                 return str.replaceAll("\r\n", "<BR>");
 8             } else {
 9                 return " ";
10             }
11         }
12         /**
13          * 防止跨站脚本攻击
14          * 过滤敏感字符
15          * 将HTML特殊字符转换为相应的实体字符。
16          */
17         public static String filter(String value) {
18
19             if (value == null || value.length() == 0) {
20                 return value;
21             }
22
23             StringBuffer result = null;
24             String filtered = null;
25             for (int i = 0; i < value.length(); i++) {
26                 filtered = null;
27                 switch (value.charAt(i)) {
28                     case ‘<‘ :
29                         filtered = "<";
30                         break;
31                     case ‘>‘ :
32                         filtered = ">";
33                         break;
34                     case ‘&‘ :
35                         filtered = "&";
36                         break;
37                     case ‘"‘ :
38                         filtered = """;
39                         break;
40                     case ‘\‘‘ :
41                         filtered = "‘";
42                         break;
43                 }
44
45                 if (result == null) {
46                     if (filtered != null) {
47                         result = new StringBuffer(value.length() + 50);
48                         if (i > 0) {
49                             result.append(value.substring(0, i));
50                         }
51                         result.append(filtered);
52                     }
53                 } else {
54                     if (filtered == null) {
55                         result.append(value.charAt(i));
56                     } else {
57                         result.append(filtered);
58                     }
59                 }
60             }
61             return result == null ? value : result.toString();
62         }
63         /**
64          * 防止SQL注入
65          * 验证字符类型不能包含特殊字
66          */
67         public static boolean checkNonlicetCharacters(String string) {
68             boolean flag = true;
69             // 不许出现单引号
70             if (string != null && string.indexOf("‘") > 0) {
71                 flag = false;
72             }
73
74             return flag;
75         }
76         /**
77          * 防止SQL注入
78          */
79         public static String getValidSQLPara(String string) {
80             if (string == null || string.length() == 0) {
81                 return string;
82             }
83             return string.replaceAll("‘", "‘‘");
84         }
85
86     }  
时间: 2024-11-05 11:48:24

JAVA 安全性转码代码(包括sql注入,跨站脚本)的相关文章

ecshop 全系列版本网站漏洞 远程代码执行sql注入漏洞

ecshop漏洞于2018年9月12日被某安全组织披露爆出,该漏洞受影响范围较广,ecshop2.73版本以及目前最新的3.0.3.6.4.0版本都受此次ecshop漏洞的影响,主要漏洞是利用远程代码执行sql注入语句漏洞,导致可以插入sql查询代码以及写入代码到网站服务器里,严重的可以直接获取服务器的管理员权限,甚至有些网站使用的是虚拟主机,可以直接获取网站ftp的权限,该漏洞POC已公开,使用简单,目前很多商城网站都被×××,危害较大,针对于此我们SINE安全对该ECSHOP漏洞的详情以及如

数据库安全性操作——操作原则及SQL注入

今天在进行支付宝开发时,看到支付宝开发文档<开放平台第三方应用安全开发指南>中关于数据库操作的安全性.特此记录! 1.数据库操作 (1)原则:用户密码存储须加盐存储,各用户盐值不同. (2)原则:若涉及证件号等敏感信息的存储,须使用AES-128算法加密存储. (3)编写的SQL必须预编译,不允许通过字符串拼接的方式合成. 说明:1.部分特殊场景,必须通过拼接合成,则拼接的变量必须经过处理,只允许[a-zA-Z0-9_-.]+字符. 2.参考SQL注入漏洞. 2.SQL注入漏洞 SQL注入攻击

集成websocket即时通讯 java聊天源码 代码下载 java后台框架源码 websocket源码

获取[下载地址]   QQ: 313596790   [免费支持更新]A 代码生成器(开发利器);全部是源码     增删改查的处理类,service层,mybatis的xml,SQL( mysql   和oracle)脚本,   jsp页面 都生成   就不用写搬砖的代码了,生成的放到项目里,可以直接运行B 阿里巴巴数据库连接池druid;  数据库连接池  阿里巴巴的 druid.Druid在监控.可扩展性.稳定性和性能方面都有明显的优势C 安全权限框架shiro ;  Shiro 是一个用

集成websocket即时通讯 java聊天源码 代码下载

获取[下载地址]   [免费支持更新]三大数据库 mysql  oracle  sqlsever   更专业.更强悍.适合不同用户群体[新录针对本系统的视频教程,手把手教开发一个模块,快速掌握本系统] A 集成代码生成器 [正反双向(单表.主表.明细表.树形表,开发利器)+快速构建表单; freemaker模版技术 ,0个代码不用写,生成完整的一个模块,带页面.建表sql脚本,处理类,service等完整模块B 集成阿里巴巴数据库连接池druid;  数据库连接池  阿里巴巴的 druid.Dr

如何防止网站被SQL注入攻击之java网站安全部署

SQL注入攻击(SQL injection)是目前网站安全以及服务器安全层面上是最具有攻击性,危害性较高,被黑客利用最多的一个漏洞,基本上针对于网站代码,包括JAVA JSP PHP ASP apache tomcat 语言开发的代码都会存在sql注入漏洞.   随着JAVA JSP架构的市场份额越来越多,许多平台都使用JAVA开发,本文通过对sql注入的详细分析,从代码层面以及服务器层面,根本上来防止sql注入攻击.   SQL注入漏洞的原理很简单,通俗来讲:就是程序员在编写网站代码的时候,一

SQL注入攻击---web安全

一.什么是sql注入呢?         所谓SQL注入,就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令,比如先前的很多影视网站泄露VIP会员密码大多就是通过WEB表单递交查询字符暴出的,这类表单特别容易受到SQL注入式攻击.当应用程序使用输入内容来构造动态sql语句以访问数据库时,会发生sql注入攻击.如果代码使用存储过程,而这些存储过程作为包含未筛选的用户输入的字符串来传递,也会发生sql注入. 黑客通过SQL注入攻击可以拿到

如何防范SQL注入——测试篇(转)

在上一篇文章<如何防范SQL注入-编程篇>中,我们讲了对于程序员而言,如何编码以防范代码存在SQL注入漏洞,那么,对于测试人员来说,如何测试SQL注入漏洞是否存在呢? 首先,我们将SQL注入攻击能分为以下三种类型: Inband:数据经由SQL代码注入的通道取出,这是最直接的一种攻击,通过SQL注入获取的信息直接反映到应用程序的Web页面上: Out-of-band:数据通过不同于SQL代码注入的方式获得(譬如通过邮件等) 推理:这种攻击是说并没有真正的数据传输,但攻击者可以通过发送特定的请求

避免SQL注入

什么是SQL注入 SQL注入攻击(SQL Injection),简称注入攻击,是Web开发中最常见的一种安全漏洞.可以用它来从数据库获取敏感信息,或者利用数据库的特性执行添加用户,导出文件等一系列恶意操作,甚至有可能获取数据库乃至系统用户最高权限. 而造成SQL注入的原因是因为程序没有有效过滤用户的输入,使攻击者成功的向服务器提交恶意的SQL查询代码,程序在接收后错误的将攻击者的输入作为查询语句的一部分执行,导致原始的查询逻辑被改变,额外的执行了攻击者精心构造的恶意代码. SQL注入实例 很多W

Web常见安全漏洞-SQL注入

SQL注入攻击(SQL Injection),简称注入攻击,是Web开发中最常见的一种安全漏洞. 可以用它来从数据库获取敏感信息,或者利用数据库的特性执行添加用户,导出文件等一系列恶意操作, 甚至有可能获取数据库乃至系统用户最高权限. 而造成SQL注入的原因是因为程序没有有效过滤用户的输入,使攻击者成功的向服务器提交恶意的SQL查询代码, 程序在接收后错误的将攻击者的输入作为查询语句的一部分执行,导致原始的查询逻辑被改变, 额外的执行了攻击者精心构造的恶意代码. SQL注入实例 很多Web开发者