sql 注入
javascript
// 正常
select * from users WHERE username="zhangsan" and password="524ab8"
// sql注入 用户名写入:zhangsan'--
select * from users WHERE username='zhangsan'-- ' and password='524ab8'
javascript
export const escape = (username: string) => {
return mysql.escape(username);
};
xss 攻击
INFO
XSS 攻击通常指的是通过利用网页开发时留下的漏洞,通过巧妙的方法注入恶意指令代码到网页,使用户加载并执行攻击者恶意制造的网页程序。这些恶意网页程序通常是 JavaScript,但实际上也可以包括 Java、 VBScript、ActiveX、 Flash 或者甚至是普通的 HTML。攻击成功后,攻击者可能得到包括但不限于更高的权限(如执行一些操作)、私密网页内容、会话和 cookie 等各种内容。
常用的 XSS 攻击手段和目的有:
- 1、盗用 cookie,获取敏感信息。
- 2、利用植入 Flash,通过 crossdomain 权限设置进一步获取更高权限;或者利用 Java 等得到类似的操作。
- 3、利用 iframe、frame、XMLHttpRequest 或上述 Flash 等方式,以(被攻击)用户的身份执行一些管理动作,或执行一些一般的如发微博、加好友、发私信等操作。
- 4、利用可被攻击的域受到其他域信任的特点,以受信任来源的身份请求一些平时不允许的操作,如进行不当的投票活动。
- 5、在访问量极大的一些页面上的 XSS 可以攻击一些小型网站,实现 DDoS 攻击的效果。
sh
npm install xss --save-dev
javascript
export const xssDefence = (name: string) => {
return xss(name);
};
javascript
const registerSql = (username: string, password: string) => {
username = xssDefence(escape(username));
password = xssDefence(password);
return `
INSERT INTO user VALUES (0, ${username}, '${password}');
`;
};