跳至主要内容
短.be

输入验证

对用户提交的数据进行检查和过滤,确保其符合预期格式并防止安全漏洞。

2026年8月11日 · 约 1 分钟阅读

安全

输入校验是指验证来自用户的输入数据是否符合预期格式与范围的过程。它是 XSS、SQL 注入、命令注入等众多 Web 攻击的第一道防线。

输入校验有两种思路:白名单方式 (定义允许的模式,拒绝其余全部) 与黑名单方式 (定义禁止的模式,允许其余全部) 。从安全的角度看,白名单方式具有压倒性的推荐度。因为黑名单方式难以穷举攻击模式,面对新的攻击手法会变得脆弱。

短链接服务中,对用户输入的 URL 进行校验尤为重要。应当验证的项目包括:URL 的格式是否正确 (是否符合 RFC 3986) ;协议是否为 `http://` 或 `https://` (排除 `javascript:` 方案) ;域名是否被列入黑名单 (排除钓鱼站点) ;以及 URL 的长度是否在上限之内。由于允许 `javascript:` 方案的 URL 就会导致 XSS 攻击成立,因此对协议做白名单校验是必须的。

校验必须在客户端 (浏览器) 与服务器端两侧都实施,这是铁律。客户端校验的目的是提升用户体验 (即时反馈) ,并不构成安全上的防御。由于攻击者能够轻易绕过浏览器的校验,所以服务器端的验证不可或缺。

分享到 XHatena

这篇文章对您有帮助吗?

相关术语

相关文章

常见问题

输入验证应该在客户端还是服务器端进行?
两端都应该进行。客户端验证是为了提升用户体验,服务器端验证是安全必需的。由于客户端验证可以被绕过,服务器端验证不可省略。
输入验证可以防止哪些攻击?
可以防止 SQL 注入、XSS、命令注入、路径遍历等攻击。白名单方式(定义允许的输入模式)最为安全。

把知识用到真实链接上

免费缩短网址