gpt4 book ai didi

javascript - 防止 Sql 注入(inject),但按页面上的原样显示发布的数据

转载 作者:行者123 更新时间:2023-11-29 00:07:04 33 4
gpt4 key购买 nike

我在 Codeigniter PHP 中构建此应用程序,其中有许多表单和网格。

但我现在面临的问题在安全方面非常关键。

当我使用 Ajax 发布数据时,我通常会尝试像这样在 Controller 中获取它

$this->input->post('someInputValueName');

但是有了上面的语句,任何人都可以编写下面的脚本,并且该脚本可以原样保存在数据库中。

<script type="javascript"> alert('Hello World'); </script>

所以当该数据显示在页面中时,上面的脚本并没有按原样显示,而是被执行了??

所以我试过这样

mysql_real_escape_string($this->input->post('someInputValueName');

但是用上面的mysql方法,在"'后面加了\斜杠,所以最后加的结果是这样的到数据库并显示在页面中。

<script type=\"javascript\"> alert(\'Hello World\'); </script>

因为在网格中我开始出现错误,我的网格停止填充因为 jquery 认为这是错误。

现在来回答我的问题,无论用户向数据库输入什么内容,输入数据都应该按原样保存(或任何其他重要的方式)但是当调用该数据时,怎么可能在网格或页面中显示它应该按原样显示并且不应执行或尝试在页面上执行?

就像在 facebook 评论中一样,如果我发布上面的脚本行,它不会被执行。它只是在评论中显示,没有任何额外的斜线。

最佳答案

试试这个函数: http://php.net/manual/de/function.htmlentities.php

看起来它符合你的需要

关于javascript - 防止 Sql 注入(inject),但按页面上的原样显示发布的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27033938/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com