SQL注入原理及解决方案
SQL注入原理
SQL注入就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令根据相关技术原理,SQL注入可以分为平台层注入和代码层注入。前者由不安全的数据库配置或数据库平台的漏洞所致;后者主要是由于程序员对输入未进行细致地过滤,从而执行了非法的数据查询。基于此,SQL注入的产生原因通常表现在以下几方面:
①不当的类型处理;
②不安全的数据库配置;
③不合理的查询集处理;
④不当的错误处理;
⑤转义字符处理不合适;
⑥多个提交处理不当。
sql注入危害数据库信息泄漏:
数据库中存放的用户的隐私信息的泄露。
网页篡改:通过操作数据库对特定网页进行篡改。网站被挂马,
传播恶意软件:修改数据库一些字段的值,嵌入网马链接,进行挂马攻击。
数据库被恶意操作:数据库服务器被攻击,数据库的系统管理员账户被窜改。服务器被远程控制,被安装后门。经由数据库服务器提供的操作系统支持,让黑客得以修改或控制操作系统。破坏硬盘数据,瘫痪全系统。
sql注入解决方案
1.参数验证
2.特殊字符过滤
3.使用参数化语句,不要拼接sql
4.编码输出
5.平台过滤特殊字符
“’|’’|;|”"|`|and|exec|insert|select|update|delete|count|*|%|chr|mid|master|truncate|char|declare|-|$|^|#|&|<|>|run|exe|delay|tolower|procedure|‘|{|}|[|]|or|where|codec|from|user|xp_cmdshell|add|net|asc|drop|table|"
总之就是要做好过滤与编码并使用参数化语句,这样sql注入漏洞基本能够解决
XSS跨站脚本攻击解决方案XSS攻击原理
XSS 属于被动式的攻击。
攻击者先构造一个跨站页面,利用script、、等各种方式使得用户浏览这个页面时,触发对被攻击站点的ht