上一篇:强制访问你的广告才能进入你的站点的script >>
精通Sql Injection技术
sql injection攻擊法並非植入電腦病毒,它是描述一個利用寫入特殊sql程式碼攻擊應用程式的動作。
換言之,只要提供給使用者輸入的介面,又沒有做到相當嚴密的輸入資料型態管制,就有可能會遭受這種行為的攻擊。
apache、iis、domino、netscape的網站系統,透過asp、php與jsp等程式碼,攻擊破壞各種sql資料庫。
影響的系統包括mssql、mysql、oracle、sybase與db2等。
一般輸入帳號密碼的網站的sql語法 select * from member where uid = "& request("id") &" and passwd = "& request("pwd") & "
如果正常使用者帳號a123456789 ,密碼1234 select * from member where uid =a123456789 and passwd=1234
輸入的帳號與密碼等資訊會取代asp( or php、jsp)中的變數,並由兩個單引號( )所包住
select * from member where uid = "& request("id") &" and passwd = "& request("pwd") & "
若攻擊者已知系統中已有一個admin的管理者帳號,則輸入admin -- ,即可不須輸入密碼而進入資料庫
select * from member where uid = admin -- and passwd =
註: -- 符號後的任何敘述都會被當作註解 (以上面為例,and子句將被sql視為說明用)
一旦惡意使用者輸入 使用者帳號 or 1=1 --,密碼asdf1234(任意輸入) select * from member where uid = or 1=1 -- and passwd = asdf1234
一旦惡意使用者輸入 使用者帳號abcdefg (任意輸入) , 密碼asdf (任意輸入) or 1=1 -- select * from member where uid = abcdefg and passwd = asdf or 1=1 --
如何防範sql injection
網頁程式撰寫方面
過濾輸入條件中可能隱含的sql指令,如insert、select、update等
針對輸入條件進行規範,如無必要,應規範為僅可接受大小寫英文字母與數字等
針對特殊的查詢參數進行過濾,如--、 等可利用replace(xx, " ", " ")進行替換
進行程式寫作時,應時常檢查程式是否存在有非預期輸入資料的漏洞。
網站伺服器方面
定期修補作業系統與網站伺服器的漏洞
避免asp、php與jsp程式源碼洩漏,造成使用者可以直接瀏覽
更改預設的網站虛擬路徑,如iis系統不要使用預設的c:\inetpub\wwwroot\的目錄
不提供錯誤訊息給使用者
攻擊者可藉由回報的錯誤訊息得知資料庫的結構
建議將錯誤輸入重導到適當網頁
修改c:\winnt\help\iishelp\common\500-100.asp的預設錯誤網頁
參考資料
the open web application security project http://www.owasp.org/asac/input_validation/sql.shtml
新波科技http://www.diamondinfotech.com.tw/
精誠公司安全通報http://www.sysware.com.tw/news/press/020424.shtml
台灣微軟公司關於sql injection的相關報導
http://www.microsoft.com/taiwan/sql/sql_injection.htm
http://www.microsoft.com/taiwan/sql/sql_injection_g1.htm
sql server電子雜誌http://www.sqlserver.com.tw/
本文来自:http://211.147.7.146:88/zkbbs/new/book/sql/sqlinjection.files/frame.htm
()
下一篇:改善 ASP 性能和外观的技巧 >>
相关文章:
- · SQL Server 2000的安全配置
- · VC里一些容易混淆的地方
- · VC Studio 使用技巧大全
- · 用PHP 4.2书写安全的脚本
- · 限制只能中文输入的方法
- · 程序设计中的一些感悟
- · 编写高质量的VB代码
- · dvbbs绝对背后的微笑
- · 5.PHP的其他功能
- · 4.与数据库的连接
- · 3.从实例开始
- · 2.PHP入门
- · 1.PHP简介
- · 随机头像PHP版
- · 自动跳转中英文页面
- · 从IIS到SQL Server数据库安全
- · 通用数据库显示程序
- · ASP实用函数库
- · 漂亮但不安全的CTB
- · 无组件图片与文本同步存入数据库的最简单的办法
- · 利用PHP创建动态图像
- · 精妙SQL语句
- · 用ASP动态生成JS表单验证代码
- · 用ASP编写网上调查投票系统
- · 轮换的logo显示
- · ip签名探针
- · ASP下载系统防盗链方法
- · ASP开发网页牢记注意事项
- · IIS6.0下ASP的新增功能
- · 图片或banner的随机显示
- · 判断Cookies是否处于开启状态
- · 主页javascript特效19则
- · Script经典文章
- · 用ASP做全文检索
- · WEB应用中报表打印的实现
- · 控制输出字符串长度区别中英文
- · ADO连接数据库字符串大全
- · vbscript与javascript传递变量
