我正在从我的网站访问者那里收集URL,然后我(按需)从我的后端请求。但是,我被困在URL的验证中。
在以下情况下可以安全地请求网址
:到目前为止我发现的东西:
但是,这些似乎都无法满足我的需要-甚至没有它们的组合。
有什么我忽略的东西吗?
答案 0 :(得分:0)
我解决了自己的问题。我用过:
首先,我使用new URL(input)
验证输入,然后在该URL.hostname上使用require('hostname-is-private').isPrivate
(这是一个异步函数)。这也适用于IP地址(即使名称不建议使用该地址也是如此)。
代码看起来像这样:
let isPrivate = require('hostname-is-private').isPrivate;
function validateURL(urlstr, cb) {
try {
let url = new URL(urlstr);
isPrivate(url.hostname, (err, res) => {
if (err) {cb(false)}
cb(!res);
})
} catch (e) {
return cb(false);
}
}