我在 CI 中使用 Cart 类,我的产品名称包含许多“危险”字符,例如撇号、括号、分号、& 和许多非拉丁字符。
Cart Class 限制允许的字符,如下所示:
var $product_name_rules = '\.\:\-_ a-z0-9'; // alpha-numeric, dashes, underscores, colons or periods
我知道我可以扩展 Cart 类并在 MY_Cart 类中用类似这样的东西覆盖这个限制:
$this->product_name_rules = '\d\D';
但这让我想知道——也许 CI 人有理由限制产品名称。也许通过消除限制,我为黑客打开了后门。
显然,当我将购物车中的项目添加到我的数据库时,我使用 Active Records 和查询绑定,这应该(据我的最佳理解)提供足够的防御 sql 注入等。
那么首先限制角色的想法是什么?