- 2
- 0
- 约1.41万字
- 约 71页
- 2018-08-06 发布于江苏
- 举报
第十八章使用SQL整合网页与资料库7
小秘訣 使用 ASP 整合資料庫時,可參考下列小秘訣 資料庫內的資料表名稱及欄位名稱,最好是英文,且中間不可留白。 欄位名稱最好複雜一點,以免和資料庫的內建關鍵字相衝。 文字欄位的預設值最好是空字串,不要不設定預設值。 在 Access 內,除非你的欄位資料量超過255個字元,否則盡量不要用到 memo 欄位,因為 memo 欄位不支援排序,也不支援萬用字元(如「*」或「?」等)。 */69 萬用字元 在 Access 內執行 SQL 指令時,有兩個最重要的萬用字元 「?」:比對一個字元 「*」:比對多個字元 說明 若要在 ASP 的程式碼內使用 SQL 的萬用字元,必須將「?」改為「_」,「*」改為「%」,以符合一般 SQL 語言的標準規範。 */69 18-5:資料隱碼(SQL Injection) 本小節介紹各種因為ASP與資料庫整合時的疏失,使得他人可以使用非法途徑來取的資料庫內容,或者進行其它侵入。 */69 SQL Injection簡介 「資料隱碼」(SQL Injection)臭蟲,簡單地說,就是將「帳號」和「密碼」欄位填入具有單引號的特殊字串,造成伺服器端在接合這些欄位資料時,會意外地產生合格的 SQL 指令,造成密碼認證的成功。 要特別注意的是,SQL Injection 的問題不限只發生在哪種特定平台或語言,只要是使用 SQL 指令存取資料庫內的資料,都有可能產生這個問題。 */69 範例18-7(1) 主題:以資料庫內之資料進行密碼認證:基本篇 Webpage: remote host, local host 程式碼重點 說明 看起來一切沒問題,但是如果你想「駭」(Hack!) 這個網站,事實上只要輸入下列資料就可以了: 帳號:*****(亂打一通) 密碼: or a=a SQL = select * from password where userid= +Request(user) + and passwd= + Request(passwd) + ; */69 範例18-7(2) 說明 當輸入帳號和密碼分別是「林政源」和「gavins」時,可以從資料庫中查到一筆資料,代表帳號和密碼正確,所得到的 SQL 指令是 當帳號和密碼分別是「xyz」和「 or a=a」時,所產生的 SQL 指令也會執行成功(因為 a=a 是一定成立的) 在 SQL 語法的條件式中,會先執行 and,再執行 or。 SQL = select * from password where userid=林政源 and passwd=gavins; SQL = select * from password where userid=xyz and passwd= or a=a; */69 避免SQL Injection 最簡單的作法,就是在取用客戶端送進來的資料前,先刪除所有可能造成問題的特殊字元。 這些字元包括單引號(‘)、雙引號(“)、問號(?)、星號 (*)、底線(_)、百分比(%)、ampersand()等,這些特殊字元都不應該出現在使用者輸入的資料中。 刪除特殊字元的動作務必 要在伺服器端進行,因為用戶端的 JavaScript 表單驗證的檢查是只能防君子,不能防小人,別人只要做一個有相同欄位的網頁,就一樣可以呼叫你的 ASP 程式碼來取用資料庫,進而避開原網頁的表單驗證功能。 */69 範例18-8 主題:使用replace()避免 SQL Injection Webpage: remote host, local host 程式碼重點 說明 在上述原始碼中,因為 Request(userid) 和 Request(passwd) 的資料是無法修改的,所以在取代前要先存到另一個個變數。由此範例可以知道,只要刪除使用者輸入字串中的所有單引號,就可以避免 SQL Injection 的問題。 user = user.replace(//g, );passwd = passwd.replace(//g, ); */69 SQL Injection 的搜索 在Google 打入「登入」,再對需要登入的網站進行 SQL Injection 的測試,就應該可以找到一些不設防的網站。 請通知該網站管理員,並表示自己無惡意: */69 我們研習張智星老師的「JavaScript程式設計與應用」,對網路上的網頁進行 SQL Injection 的測試,發覺您的登入網頁(網址是 http://xxx.xxx.xxx)並無法對抗 SQL Injection 的入侵,只要帳號任意設定、密碼設定為「 or a=a」,即可登入。 這是一封善意的信,我們僅測試是否可以登入,並未對資料進行任何修改,請查照
您可能关注的文档
- 第八单元 知识竞答.ppt
- 第八单元《走进科技地世界》.doc
- 第八届精英杯新生辩论赛().doc
- 第八章 人员素质测评指标—标准体系9.ppt
- 第八章 地形图测绘与应用(三稿)0.doc
- 第八章 政府及企业.ppt
- 第八章 经济学基础 宏观经济主要变量与其衡量 练习.doc
- 第八章 第3单元 复合场中带电粒子的运动9.ppt
- 第八章 R04 设备0.ppt
- 第八章 国际收支及内外均衡.ppt
- 新启航英语二年级上册Unit5 Festival Period 2 课件.ppt
- 10.相亲相爱一家人 情境化教学课件-统编版2026道德与法治一年级下册.ppt
- 7星星点点 AI赋能课件 2026人美版美术一年级下册.ppt
- 3.2 世界的气候类型(教学课件) 2025中图版地理八年级上册.ppt
- 5.1 发达国家与发展中国家的差异(教学课件) 2025中图版地理八年级上册.ppt
- 13.快乐的儿童节 情境化教学课件-统编版2026道德与法治一年级下册.ppt
- 新启航英语二年级上册Unit5 Festival Period 1 课件.ppt
- 2025冀教版数学三年级上册全册教学课件.ppt
- 地理试卷云南名校联盟2026届高三上学期第三次联考(12.25-12.26).docx
- 2025~2026学年第一学期 高一年级英语试卷.docx
原创力文档

文档评论(0)