成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

HTML5安全風(fēng)險詳析之三:WebSQL攻擊

安全 應(yīng)用安全
數(shù)據(jù)庫安全一直是后端人員廣泛關(guān)注和需要預(yù)防的問題。但是自從HTML5引入本地數(shù)據(jù)庫和WebSQL之后,前端開發(fā)對于數(shù)據(jù)庫的安全也必須要有所了解和警惕。WebSQL的安全問題通常表現(xiàn)為兩個部分。

一、WebSQL安全風(fēng)險簡介

數(shù)據(jù)庫安全一直是后端人員廣泛關(guān)注和需要預(yù)防的問題。但是自從HTML5引入本地數(shù)據(jù)庫和WebSQL之后,前端開發(fā)對于數(shù)據(jù)庫的安全也必須要有所了解和警惕。WebSQL的安全問題通常表現(xiàn)為兩個部分:

第一種是SQL注入:和本地數(shù)據(jù)庫一樣,攻擊者可以通過SQL注入點來進行數(shù)據(jù)庫攻擊。

另外一方面,如果Web App有XSS漏洞,那么本地數(shù)據(jù)很容易泄漏,可以想想本地數(shù)據(jù)庫里存儲了用戶最近交易記錄或者私信的情況。

二、WebSQL安全風(fēng)險詳析

1、SQL注入

例如我們有一個URL為http:/blog.csdn.net/hfahe?id=1,它接收了一個id參數(shù)來進行本地數(shù)據(jù)庫查詢并輸出,對應(yīng)的SQL語句為“select name from user where id = 1”。

但是針對這個簡單的SQL查詢,攻擊者可以構(gòu)造一個虛假的輸入數(shù)據(jù)“1 or 1 = 1”,那么我們的SQL語句將變?yōu)?ldquo;select name from user where id = 1 or 1 = 1”。這就相當(dāng)糟糕了,因為1=1這個條件總是成立的,那么這條語句將遍歷數(shù)據(jù)庫user表里的所有記錄并進行輸出。

利用這種方式,攻擊者可以構(gòu)造多種攻擊的SQL語句,來操縱用戶的本地數(shù)據(jù)庫記錄。

2、XSS與數(shù)據(jù)庫操縱

在有XSS漏洞的情況下,攻擊者獲取本地數(shù)據(jù)需要如下幾個步驟:

1)獲取JavaScript數(shù)據(jù)庫對象

2)獲取SQLite上的表結(jié)構(gòu)

3)獲取數(shù)據(jù)表名

4)操作數(shù)據(jù)

例如如下腳本完整的實現(xiàn)了上面的步驟,我在Chrome控制臺里運行即可得到用戶本地數(shù)據(jù)庫的表名,利用這個表名攻擊者可以用任何SQL語句來完成攻擊。

  1. 01.var dbo;    
  2. 02.var table;    
  3. 03.var usertable;    
  4. 04.for(i in window) {    
  5. 05.    obj = window[i];    
  6. 06.    try {    
  7. 07.        if(obj.constructor.name=="Database"){    
  8. 08.            dbo = obj;    
  9. 09.            obj.transaction(function(tx){    
  10. 10.                tx.executeSql('SELECT name FROM sqlite_master WHERE type=\'table\'', [], function(tx,results) {    
  11. 11.                    table = results;    
  12. 12.                },null);    
  13. 13.            });    
  14. 14.        }    
  15. 15.    } catch(ex) {}    
  16. 16.}    
  17. 17.if(table.rows.length > 1)    
  18. 18.    usertable = table.rows.item(1).name;  

三、防御之道

針對WebSQL攻擊,我們有如下方法預(yù)防:

1)  檢查輸入類型,過濾危險字符

我們需要保證輸入類型符合預(yù)期,例如上面的id參數(shù)一定是數(shù)字類型;同時過濾掉危險的關(guān)鍵字和符號,像PHP里addslashes這個函數(shù)的作用一樣。

2)  在SQL語句中使用參數(shù)形式

SQL語句是可以用參數(shù)形式的,例如

  1. 01.executeSql("SELECTname FROM stud WHERE id=" + input_id) 

這種字符串拼接的形式并不安全,可以換為

  1. executeSql("SELECTname FROM stud WHERE id=?“, [input_id]);) 

這樣能保證參數(shù)的輸入符合設(shè)定的類型。

3)謹(jǐn)慎對待每一次SQL操作

無論是select、modify、update或者delete,你編寫的任何一條SQL語句操作都有可能成為攻擊者的攻擊對象,造成重大損失,所以都必須要謹(jǐn)慎對待。

4)不要存儲重要數(shù)據(jù)

本地數(shù)據(jù)庫永遠(yuǎn)透明而不安全,重要的數(shù)據(jù)必須要存儲在服務(wù)器上,本地數(shù)據(jù)庫里沒有重要數(shù)據(jù)就不會對用戶造成重大損失。

5)杜絕XSS漏洞

XSS攻擊的防御將會在專門章節(jié)闡述,本文不展開詳析。

相關(guān)文章:

HTML5安全風(fēng)險詳析之一:CORS攻擊

HTML5安全風(fēng)險詳析之二:Web Storage攻擊

責(zé)任編輯:藍雨淚 來源: 博客
相關(guān)推薦

2013-01-04 11:22:12

2013-01-04 13:30:04

2013-01-04 13:39:51

2013-01-04 11:38:35

2013-01-04 13:14:22

2013-01-04 13:54:49

2013-01-21 11:04:38

2013-01-21 13:52:47

2013-06-27 14:33:00

2013-08-14 09:57:53

2012-05-30 09:34:57

2015-05-22 10:06:58

2012-06-05 10:48:23

2010-08-25 11:32:34

2014-08-26 10:43:52

2015-02-04 14:50:29

2015-05-11 09:43:07

路由traceroute

2012-05-30 13:17:46

HTML5

2012-05-15 13:44:00

HTML5中國

2013-01-24 10:26:04

HTML5HTML 5HTML5的未來
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 成人免费在线视频 | 国产美女视频 | 91成人 | 91精品国产91久久久久久吃药 | 久久久久久久国产精品影院 | 国产成人免费视频网站视频社区 | 亚洲国产成人精品女人久久久 | 精区3d动漫一品二品精区 | 蜜桃视频在线观看免费视频网站www | 夜夜操天天艹 | 91九色视频| 成人av影院| 国产精品免费一区二区 | 免费在线观看一区二区三区 | 青青草视频网 | 蜜桃传媒av | 日本视频中文字幕 | 在线免费亚洲视频 | 亚洲一区中文字幕 | 日韩h| 亚洲一区二区三区在线 | 久久精品国产亚洲a | 午夜在线免费观看视频 | 久久久久免费精品国产小说色大师 | 97国产在线视频 | 欧美视频精品 | 99久久99 | 午夜精品久久 | 黄色国产大片 | 国产午夜视频 | 欧美一级免费看 | 91精品久久久 | 日韩午夜精品 | 福利社午夜影院 | 成人在线日韩 | 精品国产欧美 | 亚洲在线一区 | 国产日日操| av影音在线 | 一区二区三区欧美在线 | 精品国产欧美一区二区三区不卡 |