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

福建百益建设集团有限公司网站做网站用的腾讯云服务器

福建百益建设集团有限公司网站,做网站用的腾讯云服务器,深圳做人工智能芯片的公司,云服务器可以做两个网站一、什么是SQL注入#xff1f; SQL注入即是指web应用程序对用户输入数据的合法性没有判断或过滤不严#xff0c;攻击者可以在web应用程序中事先定义好的查询语句的结尾上添加额外的SQL语句#xff0c;在管理员不知情的情况下实现非法操作#xff0c;以此来实现欺骗数据库服… 一、什么是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; 此时数据库的数据都会被清空掉后果非常严重. 二、防止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语句进行预编译处理 注意 #{} 参数占位符 ${} 拼接替换符不能防止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; 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.dnsts.com.cn/news/107550.html

相关文章:

  • 一流的网站建设流程图百度免费云服务器
  • 黄页推广软件哪个好郑州网站优化托管
  • 公司网站建设维保协议电梯行业网站怎么做
  • 做网站意义负责网站建设和网络推广的
  • 做网站订单上海注册公司需要什么资料
  • 站长工具天美传媒东台建网站
  • 公司网站怎么建商品标题优化
  • 网站维护的基本概念佛山中小企业网站制作
  • 做网站报价明细表免费做那个的视频网站
  • 聊城有什么网站制作公司湖南长沙设计公司
  • 网吧网站怎么做的惠州seo招聘
  • 西宁网络公司网站制作炫客网站建设
  • 阳网站建设广东微信网站制作费用
  • 岳麓区网站建设wordpress验证码查看
  • 网站托管什么意思网站建设的要素
  • 好看的网站你明白的宁波搭建网站价格
  • 广州品牌营销服务织梦与wordpress seo哪个好
  • 广州pc网站建设商城平台是什么
  • 重庆网站营销seo电话建立网站要钱吗
  • 建设门户网站系统的必要性网站后台更新前台不显示
  • 心理咨询网站建设闵行区教育局
  • 做的网站用户密码在哪里找做网站的第一步
  • shopex网站首页空白公司简介怎么写 范文
  • 网站内做关键词连接杭州网站建设规划
  • 在国内怎么做国外网站无极电影网手机在线观看
  • 做一个信息发布网站要多少钱如何查看网站的外链
  • 企业网站推广方法和技巧wordpress 4.1 搜索框
  • 有什么好的免费网站做教育宣传语注册百度推广账号
  • 江西门户网站建设免费找客户的网站
  • 网站建设优化陕西阳信网站建设