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

怎样做公司的网站首页广州推广型网站建设

怎样做公司的网站首页,广州推广型网站建设,建立网站 多少钱,云南专业网站优化#x1f514;1. 什么是SQL注入#xff1f; SQL注入(SQL Injection)是一种代码注入技术,是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。简单来说,SQL注入攻击者通过把SQL命令插入到Web表单提交或输入域名或页面请…1. 什么是SQL注入 SQL注入(SQL Injection)是一种代码注入技术,是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。简单来说,SQL注入攻击者通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,传入后端的SQL服务器执行。结果是可以执行恶意攻击者设计的任意SQL命令。例如,Web应用程序具有以下登录页面: User Name: admin Password: 1234攻击者在密码框中输入: 1234 or 11之后构造的SQL查询为: SELECT * FROM users WHERE nameadmin AND password1234 or 11;由于’或’1’1 总是为真,所以可以绕过密码验证登录系统。SQL注入可以通过多种方式进行防范,如使用参数化的SQL语句、输入验证和过滤等方法。 在设计应用时必须注意对用户输入进行过滤,避免SQL注入漏洞。 2. 防止SQL注入方式 2.1 PreparedStatement防止SQL注入 使用PreparedStatement可以有效防止SQL注入攻击。PreparedStatement会先将SQL语句发送到数据库进行预编译,之后再将参数值单独传递,从而避免了SQL语句拼接的过程。例如,使用Statement时: String sql SELECT * FROM users WHERE name username AND password password ;这里存在SQL注入风险。使用PreparedStatement: String sql SELECT * FROM users WHERE name ? AND password ?; PreparedStatement stmt connection.prepareStatement(sql); stmt.setString(1, username); stmt.setString(2, password);PreparedStatement会区分SQL语句字符串和参数值,用?作为占位符,之后调用setString()等方法设置参数,这样可以有效防止SQL注入。 2.2 mybatis中#{}防止SQL注入 在MyBatis中,可以使用#{}来防止SQL注入。#{}是MyBatis提供的PreparedStatement的参数占位符。MyBatis会自动将#{}替换为? ,并且对用户传入的参数自动进行Escape处理,以防止SQL注入。例如: select idfindUser parameterTypeString resultTypeUserselect * from user where name #{name} /select在Mapper接口中: User findUser(String name);在这里,传入的name参数会被直接传递给PreparedStatement作为参数,而不是拼接到SQL语句中,所以安全。如果使用${}进行拼接: select * from user where name ${name} 那么就存在SQL注入风险。所以在MyBatis中,应该始终使用#{}进行参数传递,而不是${}字符串拼接,以防止SQL注入攻击。 2.3 对请求参数的敏感词汇进行过滤 对用户请求参数中的敏感词汇进行过滤,可以防止多种注入攻击,包括SQL注入、XSS等。 常见的防范措施包括: 构建敏感词汇库,收集所有可能的敏感词汇,如delete、drop、script等。并定期更新。**对用户请求参数进行遍历,判断参数值是否包含敏感词汇。**可以用正则表达式或包含关系来判断。一旦发现参数值存在敏感词汇,可以采取以下措施: 返回错误,拒绝请求删除敏感词汇后,再进行后续处理将敏感词汇替换为安全的占位符,如replace(‘delete’, ‘***’) 对关键参数与业务规则进行校验,例如长度、类型、允许范围等。 考虑在边界处过滤,如WAF、防火墙等。 避免直接在SQL中拼接参数,应使用参数化查询。 输出时对敏感数据编码或替换。 2.4 nginx反向代理防止SQL注入 nginx作为反向代理服务器,可以实现一些防范SQL注入的措施: 请求参数过滤 可以使用nginx的ngx_http_rewrite_module模块,在server区域加入过滤规则,对请求参数中敏感字符进行过滤或拦截,例如: if ($args ~* select|insert|update|delete|drop|exec) { return 403; }WAF功能 启用nginx的Web应用防火墙功能,对疑似SQL注入的请求进行拦截,如检测特殊字符,语句规则等。访问控制 通过nginx的access模块,禁止某些IP地址或子网段访问,限制请求频率,以防止滥用。隐藏数据库结构信息 nginx可以基于请求中的User-Agent等信息,显示不同的错误页面,避免泄露数据库元信息。连接数据库的用户权限控制 只允许访问应用需要的最小权限集。 写在最后 如果大家对相关文章感兴趣可以关注公众号架构殿堂会持续更新AIGCjava基础面试题, netty, spring boot, spring cloud等系列文章一系列干货随时送达!
http://www.yutouwan.com/news/220193/

相关文章:

  • 网站推广方案怎么写的怎么去推广一个app
  • 安国市城乡建设局网站网站kv如何做
  • 宁波百度做网站的公司哪家好贵州小程序制作开发
  • 网站设计基本要素珠海华中建设工程有限公司网站
  • 长春网站建设吉网传媒实力牜wordpress seo怎么做
  • 网站建设工作部署会wordpress会员卡
  • 网站域名的建立动漫制作专业大专院校
  • 国外 设计公司手机网站郑州seo优化公司
  • 网站建设使用的什么软件有哪些方面网站登录页面模板下载
  • 微信软件seo外包优化网站 sit
  • 淘宝客导购网站怎么建设馆陶网站推广
  • 企业网站在策划阶段最重要的工作是什么wordpress 提速
  • 网站建设到运营赚钱网站推广优化趋势
  • 有做挂名法人和股东的网站吗网站建设云解析dns有什么用
  • 餐饮企业网站设计网站建设技术有哪些
  • 网站建设机器人建立wordpress用哪个云好
  • 怎么样在公司配置服务器做网站南县网页定制
  • 东莞大岭山做网站公司购买网站域名 空间
  • 泉州全网推广有名的seo外包公司
  • 网站建设公司那记号免费搭建微信网站设计
  • 邮箱网站怎么做动易网站 修改栏目名字
  • 宁波网站推广方式怎么样上海建设工程招投标网
  • 杭州网站建设技术支持24小时自动发货网站建设
  • 食品企业网站建设网站建设公司 专题制作
  • 互联网传媒 网站如何注册百度账号
  • 知名网站都是什么系统做的网站建设kuhugz
  • 湖南网站建设 安全还踏实磐石网络网站开发工程师绩效考核表
  • 怎么做中英文版网站网站 系统 区别
  • 大庆市住房与城乡建设局网站太原建站公司有哪些
  • wordpress怎么搭建网站网站建设婚恋交友