0

有一个用 CI 版本 1.7.2 编写的站点。

任务是防止注入攻击和跨站点脚本。

我几乎阅读了与它相关的各种信息。我试过了

-htmlentities

-mysql_real_escape_string

-CI xss_clean

-pregmatch, escape, htmlspecialchars

-CI escape

-strip_tags

-magic_quotes

在搜索框中,如果我输入警报代码或 writeResponse,它会显示来自站点和数据库的各种结果。(有些在 Chrome 中不起作用,但警报和其他一切都在 Firefox 和 IE 中起作用)

请提出解决此问题的最佳方法。

谢谢你

4

3 回答 3

1

如果你还没有听说过。PDO是用于 PHP 和 SQL 的首选技术之一。该文档声称,如果您使用 PDO 的“准备好的语句”,SQL 注入几乎是不可能的,如下所示:

<?php
$stmt = $dbh->prepare("INSERT INTO REGISTRY (name, value) VALUES (:name, :value)");
$stmt->bindParam(':name', $name);
$stmt->bindParam(':value', $value);

// insert one row
$name = 'one';
$value = 1;
$stmt->execute();

// insert another row with different values
$name = 'two';
$value = 2;
$stmt->execute();
?>

此示例代码取自: http: //php.net/manual/en/pdo.prepared-statements.php 从该链接,阅读第二个要点。

它具有充当抽象的额外好处,使您的系统跨数据库兼容。代码看起来也更好。

浏览文档,看看它是否提供了您正在寻找的内容。

于 2012-09-27T19:08:47.273 回答
1

见下面的网址

PHP 中结合 Code Ignitors xss_clean() 和 Zend PDO 的 SQL 注入和 XSS 保护

CodeIgniter 已经为您的案例提供了 2 个安全功能。

  1. 用户输入的 XSS 过滤:输入类的方法有第二个布尔参数,它允许您通过 XSS 过滤器运行输入,以防您没有启用全局 xss 过滤器。

  2. 对于 SQL 注入,使用绑定查询和活动记录是安全的,它将使您免于 SQL 注入,因为框架会完成所有转义易受攻击的用户输入的工作。用户报告的活动记录漏洞很少,但是 CodeIgnitor 团队(EllisLabs)在后续版本中迅速修复了这些漏洞

另一个例子

在 codeigniter 中防止 SQL 注入

http://codeigniter.com/forums/viewthread/124587/#616863

http://codeigniter.com/forums/viewthread/186543/#881859

于 2012-09-27T19:16:26.610 回答
-1

这个问题已经被打死了。回顾:OWASP XSSOWASP SQL 注入

于 2012-09-27T19:04:39.893 回答