nodejs过滤输入

时间:2012-01-10 15:42:18

标签: php node.js filtering

在PHP中过滤输入数据我使用的是函数 htmlspecialchars和mysql_real_escape_string。在nodejs中有没有这样的函数?

我需要检查我的rounter函数中的所有输入,以防止像xss这样的黑客攻击。 谢谢!

2 个答案:

答案 0 :(得分:1)

node-validator是完美的库,它具有许多验证和卫生/过滤功能,例如:

entityDecode()                  //Decode HTML entities
entityEncode()
xss()                           //Remove common XSS attack vectors from text (default)
xss(true)                       //Remove common XSS attack vectors from images

contains(str)
notContains(str)
regex(pattern, modifiers)       //Usage: regex(/[a-z]/i) or regex('[a-z]','i')
notRegex(pattern, modifiers)
len(min, max)                   //max is optional
isUUID(version)                 //Version can be 3 or 4 or empty, see http://en.wikipedia.org/wiki/Universally_unique_identifier
isDate()                        //Uses Date.parse() - regex is probably a better choice
isAfter(date)                   //Argument is optional and defaults to today
isBefore(date)                  //Argument is optional and defaults to today
isIn(options)                   //Accepts an array or string

答案 1 :(得分:0)

Google Caja HTML sanitizer有一个NodeJS包。或者您使用提供的答案here

function escapeHtml(unsafe) {
  return unsafe
      .replace(/&/g, "&")
      .replace(/</g, "&lt;")
      .replace(/>/g, "&gt;")
      .replace(/"/g, "&quot;")
      .replace(/'/g, "&#039;");
}

对于SQL,它取决于您正在使用的库,但大多数库都将转义参数化查询。