Codeigniter codenigiter:sql注入和xss_清理

Codeigniter codenigiter:sql注入和xss_清理,codeigniter,xss,sql-injection,Codeigniter,Xss,Sql Injection,我正在使用codenigiter中的active record进行一些查询,我阅读了一些文档,其中说使用AR将自动转义参数。我想确认这一点,我阅读了AR类的源代码,但我感到困惑! 我做了一些测试,例如,我访问url如下: http://wrecruit.tudouya.com/company/editProfile/4 然后在CI中启用探查器。 当我在url末尾添加一个单引号时,如下所示: http://wrecruit.tudouya.com/company/editProfile/4'

我正在使用codenigiter中的active record进行一些查询,我阅读了一些文档,其中说使用AR将自动转义参数。我想确认这一点,我阅读了AR类的源代码,但我感到困惑! 我做了一些测试,例如,我访问url如下:

http://wrecruit.tudouya.com/company/editProfile/4 
然后在CI中启用探查器。

当我在url末尾添加一个单引号时,如下所示:

http://wrecruit.tudouya.com/company/editProfile/4'
我看到了查询执行的真正sql语句,得到了以下结果:

 SELECT *
FROM (`wy_company`)
WHERE `id` =  '4%27'  

单引号转义到“%27”,我想知道此转义是如何发生的?可能是由输入类转义的?

Url地址始终使用urlencode函数进行编码。此功能用代码替换所有符号。 如果要防止xss,应该检查参数。可能是这样(在控制器公司):


在DB查询中,您应该使用,或者使用活动记录。它们都是防止注射的。

可能是重复的。我想知道如何将单个报价添加到%27。谢谢朋友!你说“Url地址总是用urlencode函数编码”,这就是我想知道的,我也想知道urlencode函数在哪里应用?
public function editProfile($id)
{
    $id = (int)$id;

    if($id){
        // model code execute - loading DB data
    }
}