预防SQL漏洞注入和规避网络攻击
前言:
虽然近些年SQL注入已经被各类的安全开发框架规避了绝大部分,但SQL注入作为一种最原始的攻击手段之一,破坏力仍然十分强大,因为它直捣黄龙数据中心。所以未雨绸缪,各位不可不重视。
预防SQL注入方法措施:
-
服务器层面:
1:购买云服务商的Waf防火墙,WAF会在服务器外部规避识别并过滤掉SQL攻击,并且可以永久封掉对方的IP。
2: 请专业的网络安全公司或购买他们的付费产品来护航。如国内排名前列的奇安信,深信服,新华三,亚信安全,腾讯安全,阿里安全等。往往用魔法打败魔法是最有效的,因为懂得防御的人一定懂得如何攻击,懂攻击的人也势必知道如何防御。
2:要保证生产环境的WebShell是关闭错误信息的。例如,PHP生产环境中的配置php.ini中的display_error是off,这样就能关闭服务器的错误提示,不直接展示给攻击者。
3:做好Web服务的日志实时监控和记录,定期备份,防止攻击者攻入后抹掉相关日志信息。
4:时刻关注最新漏洞和病毒,定期更新维护服务器软件和安全漏洞补丁,做好防护。
5:数据库最小权限规则。确保用户具有执行必要操作的最低权限,这样即使发生SQL注入攻击,攻击者也无法进行危险的操作。
......
-
程序编码层面:
1:使用参数化和预编译语句。参数化和预编译语句可以防止SQL在执行的时候把用户输入的字符误解为SQL语法。比如以下的sql语句,
- PrepareStatement函数会将以下SQL语句进行预编译定型,生成固定的SQL数据结构。无论用户输入什么字符,都不会被解析成sql语法,也就是 -- , # ,or 1=1 等这些都会不起作用。从根本上杜绝SQL注入。
String sql = "select * from courseinfo where course_id = ?";stat = connection.PrepareStatement(sql);
- 但在有些时候我们无法使用预编译语句,比如传入的sql参数为动态的时候,就必须要进行拼接。如以下情况:
- 这种就必须要指定传入参数的数据类型,最好用正则去过滤校验,像用图中的Map来传递就有很大的风险。
2: 前端同学在前端输入框要做好表单校验,过滤限制提交那些疑似是恶意的SQL代码。
3: 使用ORM自动化框架,如Mybatis,Hibernate,等。Hibernate中尽量调用 hibernate.find() 方法去发送查询。 Mybatis中传参时使用 #{} 来过滤,${} 符不会过滤,要合理使用。
4: 在后端添加Filter 过滤框架,利用正则表达式判断过滤掉那些危险字符。
5: 在进行JDBC操作时,一定要使用错误捕捉框架或try catch 把错误提示隐藏掉,避免直接显示到页面或反馈给用户,
.......
以上编码层面的防范主要是针对Java, 关于php, python的 ,有机会再补充。
-
如何最大限度规避网络攻击
一台接入互联网的个人PC机或服务器,其实本身就已经处在了网络攻击的范围内,只是个人PC没有被攻击的价值,所以我们个人可能感觉不到。但那些有价值的商务网站,聊天社交,金融交易,12306,淘宝,京东等和一些重要政务,军事,银行,国家电网,移动,电信,联通运营商等城域网、局域网都无时不刻的在遭受着未知的网络攻击。
规避网络攻击措施:
1:如果网站仅面对国内用户服务的,那就禁止外网IP访问。(因为据调查,90%的网络攻击都来源于境外)。但如果是国际网站 .com等,那就需要做其他措施了,如购买高防服务,和一些安全产品。
- 能做到绝对安全几乎是不可能的,周鸿伟说过世界上没有攻不破的网络,只有不努力的黑客。
- 能做到最大限度安全就是花钱雇专业团队来做,但这对于小团队和公司来说不太实际,小公司能做的最好就是购买专业团队公司的安全产品和技术服务。雷军刚在演讲中说过,"遇到不会的问题那就找个会的问问,因为你经历的问题别人早就经历过了”
2:个人电脑的话谨慎点击不明来源的邮件,链接等。
3:安装安全软件杀毒软件,如360,腾讯管家,金山。其他都不建议安装,什么2345杀毒,火绒安全,都实在不值得一提。2345简直就是个病毒蛊,打开即爆发。火绒受到追捧的原因只是因为他现在没有广告,杀毒能力一般,文件粉碎解密和腾讯比太拉跨。
360虽然各项防御能力在国内名列前茅,但那只是对政企用户,他的个人版做的对个人用户越来越不友好,一旦安装一个将会是不经意间就全家桶奉上。这里强烈推荐腾讯管家的旧版,
腾讯管家在保护自己产品方面做的非常好,而且杀毒,尤其是文件粉碎,强力删除,文件解密和文件恢复方面 在同等免费产品中个人感觉是最好的。
现在新版阉割了很多工具箱里的功能,电脑诊所什么的都没了。所以这里强烈推荐大家使用旧版,只需定期更新病毒库和新版没有区别。
4:有能力的可以购买付费杀毒软件。会定期更新国际最新的病毒库信息。
5:定期升级系统,安装补丁程序。这里也不是说一发布就升级,而是要看有没有升级的必要,如果被标注是重要升级,那就需要升级。如果只是优化体验,可以选择升级。
.......
后续有新措施,会逐步补充.....
感谢大家的观看,祝工作顺利,生活愉快。
相关文章:

预防SQL漏洞注入和规避网络攻击
前言: 虽然近些年SQL注入已经被各类的安全开发框架规避了绝大部分,但SQL注入作为一种最原始的攻击手段之一,破坏力仍然十分强大,因为它直捣黄龙数据中心。所以未雨绸缪,各位不可不重视。 预防SQL注入方法措施: 服务器…...

《Go 语言第一课》课程学习笔记(一)
配好环境:选择一种最适合你的 Go 安装方法 选择 Go 版本 一般情况下,建议采用最新版本。因为 Go 团队发布的 Go 语言稳定版本的平均质量一直是很高的,少有影响使用的重大 bug。可以根据不同实际项目需要或开源社区的情况使用不同的版本。 有…...

网络安全 Day29-运维安全项目-iptables防火墙
iptables防火墙 1. 防火墙概述2. 防火墙2.1 防火墙种类及使用说明2.2 必须熟悉的名词2.3 iptables 执行过程※※※※※2.4 表与链※※※※※2.4.1 简介2.4.2 每个表说明2.4.2.1 filter表 :star::star::star::star::star:2.4.2.2 nat表 2.5 环境准备及命令2.6 案例01:…...
SQL 复习 03
函数与关键字 用法说明round(x, n)四舍五入,x为浮点数,n为保留的位数ceil(x)向上取整floor(x)向下取整truncate(x, n)截断x,n为保留的位,该位之后的数值置零,位数表示示例:321.123,其中小数点前…...
出现 sudo: docker: command not found 的解决方法
目录 1. 问题所示2. 原理分析3. 解决方法3.1 未成功安装引起3.2 环境变量引起1. 问题所示 安装了docker,但是执行docker命令的时候,提示该问题: ubuntu@10-41-104-1:~$ sudo docker ps -a sudo: docker: command not foundubuntu@10-41-104-1:~$ sudo apt-get install doc…...

FastApi-1-结合sql 增/查demo
目录 FastAPI学习记录项目结构部分接口/代码展示感受全部代码 FastAPI学习记录 fastapi已经学习有一段时间,今天抽时间简单整理下。 官网介绍: FastAPI 是一个用于构建 API 的现代、快速(高性能)的 web 框架,使用 Py…...
Spring学习笔记3
使用注解开发: Component 组件开发相当于 Value(“xxx”)可以对属性进行赋值 package pojo;import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; //等价于<bean id"user" class"po…...

springboot艰难版本升级之路!! springboot 2.3.x版本升级到2.7.x版本
文章目录 1.缘起1.1 升级到版本2.7.12启动失败,而且没有报错信息1.2 application-dev.yml 配置加载问题1.3 openfeign依赖问题汇总1.4 datasource报错1.5 MySQL驱动升级1.6 循环依赖报错1.7 跨域错误临时总结1.缘起 由于服务需要搭建链路追踪, 需要把springboot版本升级到2.7.1…...
Codeforces 1856E2 复杂度分析 + DP
题意 传送门 Codeforces 1856E2 PermuTree (hard version) 题解 可以独立考虑每一个固定的 p l c a ( u , v ) plca(u,v) plca(u,v) 对答案的贡献。可以观察到,对于 p p p 的每一棵子树,其所有节点在最优情况下仅有 a p < a v a_p < a_v ap…...

Windows - UWP - 为UWP应用创建桌面快捷方式
Windows - UWP - 为UWP应用创建桌面快捷方式 前言 这是一个较为简单的方式,不需要过多的命令行。 How 首先Win R -> shell:AppsFolder -> 回车, 这将显示电脑上的已安装应用(Win32 & UWP): 找到想要创建…...

了解Web DDoS海啸攻击的4个维度
我们都知道近年来网络攻击的数量和频率急剧上升,针对Web应用程序的DDoS海啸攻击就是其中增长非常迅速的一个种类。过去常见的HTTP/S洪水攻击正在大范围的转变为更难对付的Web DDoS海啸攻击,每个人都应该提前做好被攻击的准备并采取适当的保护措施。 哪些…...

【数学建模】逻辑回归算法(Logistic Resgression)
逻辑回归算法 简介逻辑回归与条件概率绘制sigmoid函数 简介 逻辑回归算法是一种简单但功能强大的二元线性分类算法。需要注意的是,尽管"逻辑回归"名字带有“回归”二字,但逻辑回归是一个分类算法,而不是回归算法。 我认为ÿ…...
Hadoop HA集群两个NameNode都是standby或者主NameNode是standby,从NameNode是active的情况集锦
文章目录 背景架构HDFS HA配置错误原因解决方案方案一方案二方案三(首先查看自己各参数文件是否配置出错) 后记补充failovertransitionToActive 常用端口号及配置文件常用端口号hadoop3.xhadoop2.x 常用配置文件 这里说一下配置Hadoop HA集群可能出现的两…...

[Go版]算法通关村第十一关白银——位运算的高频算法题
目录 专题1:位移的妙用题目:位1的个数(也被称为汉明重量)解法1:遍历所有位,判断每个位的数字是否是1Go代码 解法2:依次消除每个1的位 numnum&(num-1)Go代码 题目:比特位计数思路…...

Swift 基础
工程目录 请点击下面工程名称,跳转到代码的仓库页面,将工程 下载下来 Demo Code 里有详细的注释 点击下载代码:swift-01...

IDEA的常用设置,让你更快速的编程
一、前言 在使用JetBrains的IntelliJ IDEA进行软件开发时,了解和正确配置一些常用设置是非常重要的。IDEA的强大功能和定制性使得开发过程更加高效和舒适。 在本文中,我们将介绍一些常用的IDEA设置,帮助您更好地利用IDEA进行开发。这些设置包…...
docker 镜像的导出与导入 save 与 load
一、镜像导出 docker save 导出 将系统中的镜像保存为压缩包,进行文件传输。使用 docker save --help 查看命令各参数,或者去docker官网查看.以 hello-world镜像为例。 A:将镜像保存为tar包 docker save image > package.tar docker sa…...

WPF显示初始界面--SplashScreen
WPF显示初始界面–SplashScreen 前言 WPF应用程序的运行速度快,但并不能在瞬间启动。当第一次启动应用程序时,会有一些延迟,因为公共语言运行时(CLR)首先需要初始化.NET环境,然后启动应用程序。 对于WPF中…...

08- AD/DA模/数转换
AD/DA模/数转换 8、AD/DA模/数转换8.1 AD转换注意 示例8.2 DA转换DAC转换原理: 8.3 PWM的DAC 8、AD/DA模/数转换 8.1 AD转换 通道引脚对照表: ADC的引脚: 规则通道和注入通道: 各个通道可以在单次、连续、扫描或者间断模式里…...

DTC服务(0x14 0x19 0x85)
DTC相关的服务有ReadDTCInformation (19) service,ControlDTCSetting (85) service和ReadDTCInformation (19) service ReadDTCInformation (19) service 该服务允许客户端从车辆内任意一台服务器或一组服务器中读取驻留在服务器中的诊断故障代码( DTC )信息的状态…...

wordpress后台更新后 前端没变化的解决方法
使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…...
【Linux】shell脚本忽略错误继续执行
在 shell 脚本中,可以使用 set -e 命令来设置脚本在遇到错误时退出执行。如果你希望脚本忽略错误并继续执行,可以在脚本开头添加 set e 命令来取消该设置。 举例1 #!/bin/bash# 取消 set -e 的设置 set e# 执行命令,并忽略错误 rm somefile…...

基于ASP.NET+ SQL Server实现(Web)医院信息管理系统
医院信息管理系统 1. 课程设计内容 在 visual studio 2017 平台上,开发一个“医院信息管理系统”Web 程序。 2. 课程设计目的 综合运用 c#.net 知识,在 vs 2017 平台上,进行 ASP.NET 应用程序和简易网站的开发;初步熟悉开发一…...

关于iview组件中使用 table , 绑定序号分页后序号从1开始的解决方案
问题描述:iview使用table 中type: "index",分页之后 ,索引还是从1开始,试过绑定后台返回数据的id, 这种方法可行,就是后台返回数据的每个页面id都不完全是按照从1开始的升序,因此百度了下,找到了…...
Leetcode 3577. Count the Number of Computer Unlocking Permutations
Leetcode 3577. Count the Number of Computer Unlocking Permutations 1. 解题思路2. 代码实现 题目链接:3577. Count the Number of Computer Unlocking Permutations 1. 解题思路 这一题其实就是一个脑筋急转弯,要想要能够将所有的电脑解锁&#x…...
连锁超市冷库节能解决方案:如何实现超市降本增效
在连锁超市冷库运营中,高能耗、设备损耗快、人工管理低效等问题长期困扰企业。御控冷库节能解决方案通过智能控制化霜、按需化霜、实时监控、故障诊断、自动预警、远程控制开关六大核心技术,实现年省电费15%-60%,且不改动原有装备、安装快捷、…...

ETLCloud可能遇到的问题有哪些?常见坑位解析
数据集成平台ETLCloud,主要用于支持数据的抽取(Extract)、转换(Transform)和加载(Load)过程。提供了一个简洁直观的界面,以便用户可以在不同的数据源之间轻松地进行数据迁移和转换。…...
Neo4j 集群管理:原理、技术与最佳实践深度解析
Neo4j 的集群技术是其企业级高可用性、可扩展性和容错能力的核心。通过深入分析官方文档,本文将系统阐述其集群管理的核心原理、关键技术、实用技巧和行业最佳实践。 Neo4j 的 Causal Clustering 架构提供了一个强大而灵活的基石,用于构建高可用、可扩展且一致的图数据库服务…...

令牌桶 滑动窗口->限流 分布式信号量->限并发的原理 lua脚本分析介绍
文章目录 前言限流限制并发的实际理解限流令牌桶代码实现结果分析令牌桶lua的模拟实现原理总结: 滑动窗口代码实现结果分析lua脚本原理解析 限并发分布式信号量代码实现结果分析lua脚本实现原理 双注解去实现限流 并发结果分析: 实际业务去理解体会统一注…...

企业如何增强终端安全?
在数字化转型加速的今天,企业的业务运行越来越依赖于终端设备。从员工的笔记本电脑、智能手机,到工厂里的物联网设备、智能传感器,这些终端构成了企业与外部世界连接的 “神经末梢”。然而,随着远程办公的常态化和设备接入的爆炸式…...