检查输入,兼容性与严谨性



在解析和验证输入时,两个数据之间存在张力。

  1. 检查一切安全。不要让垃圾进来,因为它会导致谁也不知道什么东西出来。

  2. 允许接受输入(但严格生产输出),因为否则你会造成不必要的不兼容。

什么原则决定应用哪条规则?我的最佳猜测是(1)适用于验证将传递到其他地方的数据的情况。还有其他的考虑吗?

我想说#1更多地应用于输入的内容(它真的是一个人的名字,还是一个DROP TABLE命令?),而#2更多地应用于输入的格式(几乎有效的XML——我们知道您的意思,所以我们接受它)。

我还认为实现#2的各种情况(接受糟糕的HTML或XML;允许javascript在行尾不使用分号已经被证明是错误的。

相关内容

  • 没有找到相关文章

最新更新