当前位置: 首页 > news >正文

站长工具在线平台小说网站排名免费

站长工具在线平台,小说网站排名免费,免费定制开发软件,如何在导航网站上做链接目录 一、什么是SQL注入#xff1f; 二、Java项目防止SQL注入方式 1、PreparedStatement防止SQL注入 2、mybatis中#{}防止SQL注入 3、对请求参数的敏感词汇进行过滤 4、nginx反向代理防止SQL注入 一、什么是SQL注入#xff1f; SQL注入即是指web应用程序对用户输入数… 目录 一、什么是SQL注入 二、Java项目防止SQL注入方式 1、PreparedStatement防止SQL注入 2、mybatis中#{}防止SQL注入 3、对请求参数的敏感词汇进行过滤 4、nginx反向代理防止SQL注入  一、什么是SQL注入 SQL注入即是指web应用程序对用户输入数据的合法性没有判断或过滤不严攻击者可以在web应用程序中事先定义好的查询语句的结尾上添加额外的SQL语句在管理员不知情的情况下实现非法操作以此来实现欺骗数据库服务器执行非授权的任意查询从而进一步得到相应的数据信息。 SQL案列 String sql delete from table1 where id id; 这个id从请求参数中获取若参数被拼接为 1001 or  1 1 最执行语句变为 String sql delete from table1 where id 1001 or 1 1; 此时数据库的数据都会被清空掉后果非常严重 二、Java项目防止SQL注入方式 这里总结4种 PreparedStatement防止SQL注入mybatis中#{}防止SQL注入对请求参数的敏感词汇进行过滤nginx反向代理防止SQL注入 1、PreparedStatement防止SQL注入 PreparedStatement具有预编译功能以上述SQL为例 使用PreparedStatement预编译后的SQL为 delete from table1 where id ? 此时SQL语句结构已固定无论?被替换为任何参数SQL语句只认为where后面只有一个条件当再传入 1001 or  1 1时语句会报错从而达到防止SQL注入效果。 2、mybatis中#{}防止SQL注入 mybatis中#{}表达式防止SQL注入与PreparedStatement类似都是对SQL语句进行预编译处理 PS 注意 #{} 参数占位符 ${} 拼接替换符不能防止SQL注入一般用于 传入数据库对象如数据库名称、表名order by  后的条件 3、对请求参数的敏感词汇进行过滤 这里是springboot的写法如下 import org.springframework.context.annotation.Configuration; import javax.servlet.*; import javax.servlet.annotation.WebFilter; import java.io.IOException; import java.util.Enumeration;/*** Auther: admin* Description: sql防注入过滤器*/ WebFilter(urlPatterns /*,filterName sqlFilter) Configuration public class SqlFilter implements Filter {Overridepublic void init(FilterConfig filterConfig) throws ServletException {}/*** description sql注入过滤*/Overridepublic void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {ServletRequest request servletRequest;ServletResponse response servletResponse;// 获得所有请求参数名EnumerationString names request.getParameterNames();String sql ;while (names.hasMoreElements()){// 得到参数名String name names.nextElement().toString();// 得到参数对应值String[] values request.getParameterValues(name);for (int i 0; i values.length; i) {sql values[i];}}if (sqlValidate(sql)) {//TODO 这里直接抛异常处理前后端交互项目中请把错误信息按前后端数据返回的VO对象进行封装throw new IOException(您发送请求中的参数中含有非法字符);} else {filterChain.doFilter(request,response);}}/*** description 匹配效验*/protected static boolean sqlValidate(String str){// 统一转为小写String s str.toLowerCase();// 过滤掉的sql关键字特殊字符前面需要加\\进行转义String badStr select|update|and|or|delete|insert|truncate|char|into|substr|ascii|declare|exec|count|master|into|drop|execute|table|char|declare|sitename|xp_cmdshell|like|from|grant|use|group_concat|column_name| information_schema.columns|table_schema|union|where|order|by| \\*|\\;|\\-|\\--|\\|\\,|\\//|\\/|\\%|\\#;//使用正则表达式进行匹配boolean matches s.matches(badStr);return matches;}Overridepublic void destroy() {} } 4、nginx反向代理防止SQL注入  越来越多网站使用nginx进行反向代理该层我们也可以进行防止SQL注入配置。 将下面的Nginx配置文件代码放入到server块中然后重启Nginx即可。 if ($request_method !~* GET|POST) { return 444; }#使用444错误代码可以更加减轻服务器负载压力。#防止SQL注入if ($query_string ~* (\$||--|[|(%20)]union[|(%20)]|[|(%20)]insert[|(%20)]|[|(%20)]drop[|(%20)]|[|(%20)]truncate[|(%20)]|[|(%20)]update[|(%20)]|[|(%20)]from[|(%20)]|[|(%20)]grant[|(%20)]|[|(%20)]exec[|(%20)]|[|(%20)]where[|(%20)]|[|(%20)]select[|(%20)]|[|(%20)]and[|(%20)]|[|(%20)]or[|(%20)]|[|(%20)]count[|(%20)]|[|(%20)]exec[|(%20)]|[|(%20)]chr[|(%20)]|[|(%20)]mid[|(%20)]|[|(%20)]like[|(%20)]|[|(%20)]iframe[|(%20)]|[\|%3c]script[\|%3e]|javascript|alert|webscan|dbappsecurity|style|confirm\(|innerhtml|innertext)(.*)$) { return 555; }if ($uri ~* (/~).*) { return 501; }if ($uri ~* (\\x.)) { return 501; }#防止SQL注入 if ($query_string ~* [;].*) { return 509; }if ($request_uri ~ ) { return 509; }if ($request_uri ~ (\/\.)) { return 509; }if ($request_uri ~ (\.\/)) { return 509; }#if ($uri ~* (insert|select|delete|update|count|master|truncate|declare|exec|\*|\)(.*)$ ) { return 503; }#防止SQL注入if ($request_uri ~* (cost\()|(concat\()) { return 504; }if ($request_uri ~* [|(%20)]union[|(%20)]) { return 504; }if ($request_uri ~* [|(%20)]and[|(%20)]) { return 504; }if ($request_uri ~* [|(%20)]select[|(%20)]) { return 504; }if ($request_uri ~* [|(%20)]or[|(%20)]) { return 504; }if ($request_uri ~* [|(%20)]delete[|(%20)]) { return 504; }if ($request_uri ~* [|(%20)]update[|(%20)]) { return 504; }if ($request_uri ~* [|(%20)]insert[|(%20)]) { return 504; }if ($query_string ~ (|%3C).*script.*(|%3E)) { return 505; }if ($query_string ~ GLOBALS(|\[|\%[0-9A-Z]{0,2})) { return 505; }if ($query_string ~ _REQUEST(|\[|\%[0-9A-Z]{0,2})) { return 505; }if ($query_string ~ proc/self/environ) { return 505; }if ($query_string ~ mosConfig_[a-zA-Z_]{1,21}(|\%3D)) { return 505; }if ($query_string ~ base64_(en|de)code\(.*\)) { return 505; }if ($query_string ~ [a-zA-Z0-9_]http://) { return 506; }if ($query_string ~ [a-zA-Z0-9_](\.\.//?)) { return 506; }if ($query_string ~ [a-zA-Z0-9_]/([a-z0-9_.]//?)) { return 506; }if ($query_string ~ b(ultram|unicauca|valium|viagra|vicodin|xanax|ypxaieo)b) { return 507; }if ($query_string ~ b(erections|hoodia|huronriveracres|impotence|levitra|libido)b) {return 507; }if ($query_string ~ b(ambien|bluespill|cialis|cocaine|ejaculation|erectile)b) { return 507; }if ($query_string ~ b(lipitor|phentermin|pro[sz]ac|sandyauer|tramadol|troyhamby)b) { return 507; }#这里大家根据自己情况添加删减上述判断参数cURL、wget这类的屏蔽有点儿极端了但要“宁可错杀一千不可放过一个”。if ($http_user_agent ~* YisouSpider|ApacheBench|WebBench|Jmeter|JoeDog|Havij|GetRight|TurnitinBot|GrabNet|masscan|mail2000|github|wget|curl|Java|python) { return 508; }#同上大家根据自己站点实际情况来添加删减下面的屏蔽拦截参数。if ($http_user_agent ~* Go-Ahead-Got-It) { return 508; }if ($http_user_agent ~* GetWeb!) { return 508; }if ($http_user_agent ~* Go!Zilla) { return 508; }if ($http_user_agent ~* Download Demon) { return 508; }if ($http_user_agent ~* Indy Library) { return 508; }if ($http_user_agent ~* libwww-perl) { return 508; }if ($http_user_agent ~* Nmap Scripting Engine) { return 508; }if ($http_user_agent ~* ~17ce.com) { return 508; }if ($http_user_agent ~* WebBench*) { return 508; }if ($http_user_agent ~* spider) { return 508; } #这个会影响国内某些搜索引擎爬虫比如搜狗#拦截各恶意请求的UA可以通过分析站点日志文件或者waf日志作为参考配置。if ($http_referer ~* 17ce.com) { return 509; }#拦截17ce.com站点测速节点的请求所以明月一直都说这些测速网站的数据仅供参考不能当真的。if ($http_referer ~* WebBench*) { return 509; }#拦截WebBench或者类似压力测试工具其他工具只需要更换名称即可。 如果这篇文章对您有所帮助或者有所启发的话求一键三连点赞、评论、收藏➕关注您的支持是我坚持写作最大的动力。
http://www.w-s-a.com/news/573146/

相关文章:

  • vps 网站上传河北省招投标信息网
  • 武进网站建设咨询网站定制公司选哪家
  • 郑州市建设投资集团公司网站深圳企业网站建设推荐公司
  • 天津个人网站备案查询dz网站恢复数据库
  • 关于网站建设的期刊文献宣传片文案
  • 物业网站模板下载wordpress+菜单大小
  • 网站建设案例教程视频空间刷赞网站推广
  • 网站建设借鉴做外贸球衣用什么网站
  • 网站建设的前途微信公众号制作网站
  • 做网站之前要安装什么网站改进建议有哪些
  • 网站建设+管理系统开发山东专业网站建设公司
  • 基础微网站开发咨询中国印花图案设计网站
  • 找最新游戏做视频网站天津市招标投标公共服务平台
  • 电影订票网站怎么做注册地址出租多少钱
  • 做网站的规划和设想怎样做能让招聘网站记住密码
  • 建站知乎网站公告建设方案
  • 济南市住房和城乡建设局官方网站淮阳住房和城乡建设网站
  • 网站的设计特点有哪些seo推广要多少钱
  • wordpress开通多站点好处软件开发外包公司的设计一般多少钱
  • 为什么我的网站做不起来微信网页版登录手机版下载
  • 苏州市建设职业中心网站北京网站优化方法
  • 于飞网站开发溧阳 招网站开发
  • 网站中的宣传册翻页动画怎么做长沙有哪些网络平台公司
  • 如何做视频门户网站网站建设模板ppt
  • 青岛黄岛区网站开发百度云盘登录入口
  • 建设银行甘肃省行网站房地产市场调研报告
  • js 网站制作合肥公司网站建设
  • 最好建网站系统的软件wordpress调用模版
  • 个人网站备案地址阿里云增加网站
  • 自己做网站要办手续吗重庆短视频制作公司排名