我正在编写一个Web应用程序,我接受图像源作为url查询参数。我想验证图像源,以确保用户/调用者没有发送可能导致XSS或类似的请求。您能否建议我验证图像src或正则表达式的好方法,以确保没有恶意内容被推送到我的服务器并且可能影响最终用户。
我可以想到以下图像来源格式:
谢谢, 拉夫
答案 0 :(得分:0)
正则表达式可能不是你想要的。由于您使用的是Java,请使用URI
:
final URI input;
try {
input = URI.create(inputStringHere);
} catch (IllegalArgumentException e) {
// Not even a valid URI: deal with it
}
// do other tests on input
答案 1 :(得分:0)
此解决方案假设您将URL作为参数,然后从该URL服务器端检索数据。
单独使用正则表达式是不可取的,因为它只检查文件名,并不会告诉您实际数据是否是恶意的。我会分三步完成:
/\.(jpe?g|gif|png)$/
file -I -
管道传输文件数据。即使这不是绝对保证安全,但它应该清除最明显的攻击媒介。