WebSQL攻击的风险知识

HTML5引入本地数据库和WebSQL之后,数据库安全的风险也来到了网页和浏览器。

WebSQL的两种风险:(1)SQL注入。(2)XSS漏洞导致数据库内容泄露。

SQL注入

例如,有一个网页 https://example.net/girls?id=1024。这个网页有一个网址参数id,它是由WebSQL在浏览器本地的数据库中查询内容。 若其SQL为:

SELECT name, age 
FROM girls
WHERE id = 1024

攻击者构造一个虚假的输入,将id改为1024 or 1024 = 1024。这时,其对应的SQL会变为:

SELECT name, age 
FROM girls
WHERE id = 1024 or 1024 = 1024

数据库执行这个语句时,会将girls表的所有数据都输出。

XSS与数据库操纵

在有XSS漏洞的情况下,攻击者获取本地数据需要如下几个步骤:

1)获取JavaScript数据库对象

2)获取SQLite上的表结构

3)获取数据表名

4)操作数据

防范方法

1) 检查输入类型,过滤危险字符 2) 使用预处理语句,或参数形式,拒绝拼接字符串。

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

3)谨慎对待每一次SQL操作 4)不要存储重要数据

本地数据库永远透明而不安全,重要的数据必须要存储在服务器上。

5)杜绝XSS漏洞


添加一个评论

HTML 代码以文本显示,网站地址会被自动转化。

他/她们讨论同一个话题

回溯网址 : https://liusha.blog.codinggirl.net/trackback/364

这篇文章的评论 feed