CI で Cart クラスを使用していますが、製品名には、アポストロフィ、角かっこ、セミコロン、アンパサンド、および多くの非ラテン文字など、多くの「危険な」文字が含まれています。
Cart クラスは、許可される文字を次のように制限します。
var $product_name_rules = '\.\:\-_ a-z0-9'; // alpha-numeric, dashes, underscores, colons or periods
Cart クラスを拡張して、この制限を MY_Cart クラスで次のようにオーバーライドできることはわかっています。
$this->product_name_rules = '\d\D';
しかし、これは疑問に思います。おそらく、CI の人々が製品名を制限する理由があったのでしょう。おそらく制限を取り除くことで、ハッカーにバックドアを開いているのでしょう。
明らかに、カートからデータベースにアイテムを追加するときは、アクティブ レコードとクエリ バインドを使用します。これにより、SQL インジェクションなどに対する十分な防御が提供されるはずです (私の理解では)。
では、そもそも登場人物を限定した意図は何だったのでしょうか?