加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

SQL注入和代码

发布时间:2020-12-12 16:47:29 所属栏目:MsSql教程 来源:网络整理
导读:有关Codeigniter及其输入处理能力的一些疑问.有些可能有点奇怪,但他们是无疑的怀疑. 如果我在CodeIgniter中使用Active Record Class函数,我的输入是否防止SQL注入? 我读了某个地方,但我不明白怎么样?还是为什么? xssclean还以任何方式处理SQL注入? 解决方
有关Codeigniter及其输入处理能力的一些疑问.有些可能有点奇怪,但他们是无疑的怀疑.

>如果我在CodeIgniter中使用Active Record Class函数,我的输入是否防止SQL注入?
我读了某个地方,但我不明白怎么样?还是为什么?
> xssclean还以任何方式处理SQL注入?

解决方法

is my input prevented against SQL injection?

不完全“自动”,但它提供参数化查询. CodeIgniter或否,您应该尽可能使用参数化查询优先查询字符串黑客.

$bof= "a'b";
$zot= 'ab';

// Insecure! Don't do this!
//
$this->db->query("SELECT foo FROM bar WHERE bof='$bof' AND zot='$zot'"); 

// Secure but annoying to write
//
$this->db->query("SELECT foo FROM bar WHERE bof='".$this->db->escape($bof)."' AND zot='".$this->db->escape($zot)."'"); 

// This is what you want
//
$this->db->query('SELECT foo FROM bar WHERE bof=? AND zot=?',array($bof,$zot));

请注意,这与“输入”无关:当您使用字符串进行SQL查询时,必须使用参数化或转义才能使其适合,无论用户是否输入.这是一个简单正确的问题;安全是正确性的副作用.

类似地,当您将文本输出到HTML时,您需要HTML编码<&和“中的字符”,绝对没有什么用处理输入,以逃避或删除将来可能会麻烦的字符,如果你碰巧使用它们而不会在SQL或HTML中转义,你会把你的输出在HTML中出现了意外的SQL转义(这就是为什么在严重的应用程序中看到自倍增反斜杠)和SQL中不必要的HTML转义,并且应该从除了直接用户输入之外的某个地方(例如,材料已经在数据库)你根本没有保护.

Also does xssclean deal with SQL injection in any way?

不,它是针对HTML注入.但它比没有价值更糟糕.永远不要使用它

“XSS过滤”是完全虚伪的(CodeIgniter或其他人的).需要通过正确的HTML转义输出来防止XSS,而不是破坏输入.如果您的应用程序尚未安全,XSS过滤将无法充分保护您的安全;最好会混淆你现有的缺陷,给你一个错误的安全感.它还会扼杀许多CI认为标签的有效输入.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读