宝哥软件园

详细说说php中的SQL注入攻击和XSS攻击

编辑:宝哥软件园 来源:互联网 时间:2021-08-03

类型:E-tutorial大小:8.5M语言:中文评分:8.3标签:立即下载通常,程序员不仅要考虑代码效率和代码可重用性,还要考虑一些安全问题{

例如, SQL注入攻击

跨站点脚本

任意执行代码

文件包含和CSRF。

}

关于SQL攻击和各种反注入脚本的文章很多,但是没有一篇能够解决SQL注入的根本问题

参见代码:

?Phpmysql _ connect ('localhost ',' root ',' 123456 ')或die('数据库连接失败!');MySQL _ select _ db(' test1 ');$ user=$ _ post[' uid '];$ pwd=$ _ POST[' pass '];如果(MySQL _ query(' select * from admin=' username `=' $ user '或' password `=' $ pwd '){ echo '用户成功登录.';} eles {echo '错误的用户名或密码';}?一段很简单的代码,功能是检测用户名或密码是否正确,但是有些敏感代码是由一些恶意攻击者提交的。后果可想而知.判断后注入有两种方式。1.在表单的文本框中输入“or‘1’=1”或“and 1=1”。查询数据库的语句应该是:选择admin,其中login=` user `='或' 1'=1 '或' pass `=' xxxx '。当然,不会有错误,因为or代表sql语句中的and或。当然也会提示错误。当时我们发现可以执行SQL语句,然后可以查询当前表的所有信息。例如,更正登录入侵的管理员帐户和密码。修复方法1:使用javascript脚本过滤特殊字符(不推荐,索引不能解决问题)。如果攻击者禁用javascript,他仍然可以执行SQL注入攻击。修复2:使用mysql自带的函数进行过滤。参见代码:Php//省略了连接数据库等操作。$ user=MySQL _ real _ escape _ string($ _ POST[' user ']);mysql_query('从admin whrer `username`=' $ user '中选择*);既然前面提到了xss攻击,我们就来谈谈XSS攻击和防范。submit form:form method=' post ' action=' intuptep=' text ' name=' test ' intuptep=' submit ' name=' sub ' value=' submit '/form receive file:if(empty($ _ post[' sub '])){ echo $ _ }一段非常简单的代码,这里它只模拟了使用场景.添加攻击者提交的script alert(document . cookie);/script应该在返回的页面上显示当前页面的cookie信息。我们可以把它应用到一些留言板(没有提前过滤),然后在管理员查看更改信息时窃取COOKIE信息,发送到攻击者的空间或邮箱。攻击者可以使用cookie修饰符登录并入侵。当然,有很多解决方案。让我们介绍一种最常用的方法。修复方案1:使用javascript进行转义修复方案2:使用php内置函数对代码进行如下转义:if(empty($ _ post[' sub '])){ $ str=$ _ post[' test '];htmlentities(SRT);echo $ srt}嗯,SQL注入攻击和XSS攻击的情况和修复方法差不多。当然,还有其他解决方案:例如,使用php框架和其他方法。当然,XSS有广泛的应用和攻击。本文只过滤php的提交方式,其他的需要自己研究。_ ~本文发布于此:Aey uhost team(team.hake.cc),转载时请带版权。

更多资讯
游戏推荐
更多+