如何清理物理地址(在Node中以防止黑客入侵)?

时间:2011-07-15 15:20:04

标签: security sanitization

我有一个Node应用程序,它收集用户的地址并将其发送到Yahoo PlaceFinder api(返回用户的地理位置)。

用户应填写“地址”字段,然后单击“提交”。

可以接受许多不同的地址格式,例如:

  • 90210(只是拉链)
  • 123 fake street,beverly hills,CA 90210
  • 123 fake street,90210
  • ...... etc

我不担心用户是否输入了有效地址。我甚至不想考虑RegEx需要什么。

我担心安全问题。

在使用我的Node app - http.get()请求处理YahooPlace finder api之前,应该采取哪些步骤(如果有的话)来清理用户的输入?

2 个答案:

答案 0 :(得分:2)

让我给出一个相当务实的答案,除了通常的“清理你的不受信任数据与可接受值的白名单”回应之外。当您说“收集用户的地址”时,您实际上是:

  1. 将其传递到您可能担心注入攻击的数据库等位置
  2. 将其渲染到您可能担心XSS攻击的页面
  3. 如果您只是简单地接受输入并将其传递给雅虎,那么问题就在于他们的问题,而不是因为您没有让自己接触上述任何一种攻击媒介。您可能会发现,如果是这种情况,那么在消毒道路上没有太多意义,这对于像自由形式地址这样变化的东西来说将不可避免地非常困难。

答案 1 :(得分:1)

我敢说最简单的方法是将正则表达式应用于他们的输入,只允许使用字母数字字符,也可以使用逗号和句点。我不确定是否允许通过所有有效地址,但如果失败则可能会显示错误消息“仅使用[A-z0-9,。]”

从理论上讲,这应该可以缓解您看到的大多数类型的漏洞,因为他们很可能需要某种形式的控制角色来破坏您的代码。除非出现某种溢出,否则我很确定根据你的情况,逗号和句号相对无害。