安全管理员视角:ASP进阶开发实战
|
ASP经典开发中,许多遗留系统仍依赖Request.Form、Request.QueryString直接拼接SQL,这是安全管理员最常发现的高危点。必须强制所有用户输入通过参数化查询处理,杜绝字符串拼接。即便使用Access数据库,ADO Command对象的Parameters.Add方法同样适用,这是阻断SQL注入的第一道刚性防线。 会话管理不可信任默认配置。IIS默认的SessionID未绑定IP与User-Agent,攻击者劫持后可直接复用。安全管理员需在Global.asa中启用Session_OnStart事件,记录客户端指纹哈希值(IP+UA+Referer组合SHA256),并在每个页面请求时比对;不匹配则Abandon会话并记录告警日志。 文件上传是高频突破口。禁用所有脚本扩展名(.asp、.asa、.cer、.cdx)的执行权限,仅允许IIS中明确白名单(如.jpg、.png);上传路径须远离Web根目录,且保存时重命名——采用GUID加时间戳哈希,原始文件名绝不可落地。服务端还需校验文件头Magic Number,防范伪装图片的嵌入式ASP代码。 错误信息泄露是侦察利器。将IIS自定义错误页设为统一404/500页面,同时在ASP脚本顶部加入On Error Resume Next,并用Err.Number判断异常类型:数据库连接失败记日志但不输出具体驱动名,权限拒绝返回通用提示。禁止Response.Write(Err.Description),一切错误详情仅写入加密日志文件。 跨站脚本(XSS)防护需双重过滤。输出前调用Server.HTMLEncode对动态内容编码;但更关键的是输入层拦截:利用正则预筛Request集合所有值,匹配 (编辑:PHP编程网 - 金华站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |

浙公网安备 33038102330481号