还剩5页未读,继续阅读
文本内容:
PHP数据库安全之SQL注入电脑资料信息慕容小雨Blog感谢superhei的分享,原地址是.php./manual/zh/security.databa se.sql-injection.php很多web开发者没有注意到SQL查询是可以被篡改的,因而把SQL查询当作可信任的命令,直接SQL命令注入就是攻击者常用的一种创建或修改已有SQL语句的技术,从而达到取得隐藏数据,或覆盖关键的值,甚至执行数据库主机操作系统命令的目的这是通过应用程序取得用户输入并与静态参数组合成SQL查询来实现的下面将会给出一些真实的例子由于在缺乏对输入的数据进行验证,并且使用了超级用户或其它有权创建新用户的数据库帐号来连接,攻击者可以在数据库中新建一个超级用户例子27-
2.一段实现数据分页显示的代码……也可以被用作创建一个超级用户(PostgreSQL系统)$offset=$argv
[0];//注意,没有输入验证!$query=SELECT id,name FROMproducts ORDERBY nameLIMIT20OFFSET$offset;;$result=pg_query$conn,$query;一般的用户会点击$offset已被斌值的“上一页”、“下一页”的链接原本代码只会认为$offset是一个数值然而,如果有人尝试把以下语句先经过urlencode处理,然后加入URL中的话0;insert intopg_shadowusename,usesysid,usesuper,usecatupd,passwd selectcrack,usesysid,t,t,crack frompg_shadow whereusename=postgres;--那么他就可以创建一个超级用户了注意那个0;只不过是为了提供一个正确的偏移量以便补充完整原来的查询,使它不要出错而已注:--是SQL的注释标记,一般可以使用来它告诉SQL解释器忽略后面的语句对显示搜索结果的页面下手是一个能得到密码的可行办法攻击者所要做的只不过是找出哪些提交上去的变量是用于SQL语句并且处理不当的而这类的变量通...。