Skip to content

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}');
    `;
};