如果我通过 Ajax 从服务器获取以下对象:
$.get('/product/10', function (response) {
product = response;
// product:
// {
// name: "Product X",
// stock: 20
// }
});
然后使用如下所示的 Underscore.js 模板将其输出为 HTML:
<input type="number" value="<%- product.name %>">
<input type="number" value="<%= product.stock %>">
如果我知道 stock
属性总是以整数形式从服务器传来,是否有任何理由也对它进行转义?
我想不出一种利用它的方法,所以我想知道“逃避所有事情”是否是一个好的策略,或者“只逃避你需要的东西”是否更好。
最佳答案
如果你想完全安全,就逃避一切。代码可能会更改,您可能会决定在之前使用数字的地方使用字符串。如果你逃避一切,你就不会有问题。
然而,这只是谨慎。如果你能保证它永远是一个数字,即使 AJAX 请求失败,并且在所有边缘情况下,那么不转义它就可以了。请注意,无论我在哪里工作,大家的共识是谨慎行事。
关于javascript - 是否有任何理由在 HTML 中转义整数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25148782/