SQLite INJECTION注入

SQLite INJECTION注入,第1张

概述http://www.yiibai.com/sqlite/sqlite_injection.html 如果用户通过网页输入,并将其插入到一个SQLite数据库中,有一个机会,已经离开自己敞开的一个被称为SQL注入的安全问题。这一课将教你如何帮助防止这种情况的发生,并帮助保护脚本和SQLite语句。 注入通常发生在需求用户输入,就像他们的名字,而不是一个名字,他们给一个SQLite语句,会在不知不觉

http://www.yiibai.com/sqlite/sqlite_injection.html

如果用户通过网页输入,并将其插入到一个sqlite数据库中,有一个机会,已经离开自己敞开的一个被称为sql注入的安全问题。这一课将教你如何帮助防止这种情况的发生,并帮助保护脚本和sqlite语句。

注入通常发生在需求用户输入,就像他们的名字,而不是一个名字,他们给一个sqlite语句,会在不知不觉中数据库上运行。

永远不要相信用户提供的数据,仅处理这些数据验证后,作为一项规则,这是通过模式匹配。在下面的例子中,用户名被限制为字母数字字符加下划线和8到20个字符之间的长度 - 需要修改这些规则。

if@H_419_10@ @H_419_10@(@H_419_10@preg_match@H_419_10@(@H_419_10@"/^w{8,20}$/"@H_419_10@,@H_419_10@ $_GET@H_419_10@[@H_419_10@'username'@H_419_10@],@H_419_10@ $matches@H_419_10@)){@H_419_10@   $db @H_419_10@=@H_419_10@ @H_419_10@new@H_419_10@ @H_419_10@sqliteDatabase@H_419_10@'filename'@H_419_10@);@H_419_10@   $result @H_419_10@=@H_419_10@ @H_419_10@@$db@H_419_10@->@H_419_10@query@H_419_10@"SELECT * FROM users WHERE username=$matches[0]"@H_419_10@);@H_419_10@@H_419_10@}@H_419_10@else@H_419_10@{@H_419_10@   echo @H_419_10@"username not accepted"@H_419_10@;@H_419_10@@H_419_10@}@H_419_10@

为了证明问题,可以考虑此摘录:

$name @H_419_10@=@H_419_10@@H_419_10@"Qadir'; DELETE FROM users;"@H_419_10@;@H_419_10@

@H_419_10@@H_419_10@"SELECT * FROM users WHERE username='{$name}'"@H_419_10@);@H_419_10@

函数调用应该从用户表“名称”列中由用户指定的名称相匹配的检索记录。正常情况下,名称将只包含字母数字字符,或许空间,如字符串ilia。但在这里,通过追加一个全新的$name查询,调用数据库变成灾难:注入的DELETE查询删除用户的所有记录。

有不允许查询堆叠或一个函数调用执行多个查询的数据库接口。如果尝试到堆叠查询调用失败,但sqlite和Postgresql里仍进行堆查询,执行在一个字符串中所有提供的查询,并创建一个严重的安全问题。

防止sql注入:

可以巧妙地处理所有的转义字符,像Perl和PHP脚本语言。编程语言PHP提供了函数字符串sqlite_escape_string()来转义输入的字符是特殊的sqlite字符。

(@H_419_10@get_magic_quotes_gpc@H_419_10@())@H_419_10@ @H_419_10@{@H_419_10@  $name @H_419_10@=@H_419_10@ sqlite_escape_string@H_419_10@(@H_419_10@$name@H_419_10@}@H_419_10@$result @H_419_10@);@H_419_10@

虽然编码使得它的安全插入数据,它会呈现简单的文本比较liKE子句在查询不能包含二进制数据的列。

请注意,addslashes()不应该被用来引用sqlite 查询字符串,检索数据时,它会导致奇怪的结果。

总结

以上是内存溢出为你收集整理的SQLite INJECTION/注入全部内容,希望文章能够帮你解决SQLite INJECTION/注入所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1168045.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-01
下一篇 2022-06-01

发表评论

登录后才能评论

评论列表(0条)

保存