一 上传时, 限制扩展名的类型, 不符合要求的不能上传.
比如上传图片或文档时, 限制为 .jpg, .png, .gif, .bmp, .docx, .pdf 等必须的格式, 这样, .aspx, .html 等带脚本攻击性(有的不是攻击性, 但可能涉H, 导致GA找上门, 也不是好事)的文件就不会上传了.
二 上传图片时, 先验证是否为真实图片. 如果不是不允许上传
代码类似下面:
cs
try
{
using (System.Drawing.Image img = System.Drawing.Image.FromStream(postedFile.InputStream))
{
// 加载成功,很可能是有效图片
// 还可以进一步检查尺寸等属性
}
}
catch (Exception ex)
{
// 不是有效图片,拒绝上传
throw new Exception("文件不是有效的图片格式。");
}
三 Web中间件上设置, 上传目录不允许执行脚本
下面是 IIS 上设置示例. 这样, 即使黑客上传成功了, 执行不了也是白费劲.

