如何验证字符串是javascript / node.js中的有效URL

时间:2015-02-10 12:54:15

标签: node.js parsing

我正在编写一种CMS界面系统,在某些领域,用户必须输入图片网址,外部网站链接等。

我想检查给定字符串是否是有效网址,并且不包含某些恶意代码,例如str = '"></a><script>alert("You are doomed!");</script><a href="'

服务器写在node.js上。所以我尝试了标准require('url').parse(str)。在上面的字符串中,它返回

{ 
  protocol: null,
  slashes: null,
  auth: null,
  host: null,
  port: null,
  hostname: null,
  hash: null,
  search: null,
  query: null,
  pathname: '%22%3E%3C/a%3E%3Cscript%3Ealert(%22You%20are%20doomed!%22);%3C/script%3E%3Ca%20href=%22',
  path: '%22%3E%3C/a%3E%3Cscript%3Ealert(%22You%20are%20doomed!%22);%3C/script%3E%3Ca%20href=%22',
  href: '%22%3E%3C/a%3E%3Cscript%3Ealert(%22You%20are%20doomed!%22);%3C/script%3E%3Ca%20href=%22'
}

这似乎很合适,因为几乎所有字段都是null,但它也会在str='/myimage.png'上返回有效网址的空值。

0 个答案:

没有答案