KDa*_*awg 1 php mysql codeigniter
PHP Mysql CodeIgniter在非常奇怪的情况下将字符转换为符号
()我看一下......一天后......这是我的疯狂透露:
有问题的文字是逐字记录" 始终存档信用卡(我们不收取此客户的提货或退货) "
无论我在代码方面做了什么或改变了什么..我无法阻止PHP ......或者Javascript ......或者MySQL ......或者外星生物......或者无论是谁做到了 - 从转换" () "在文本中" ()".我尝试了很多东西,比如用人或上帝知道的所有方式清理字符串.在保存到数据库之前捕获字符串之前的字符串.转换将始终发生在保存到MySQL之前.我尝试以不同的形式和字段发布...每次都是同样的事情......无法阻止魔术转换为" () .
什么蝙蝠侠的名字在这个神奇的文本中导致这种情况发生?是魔法小精灵灰尘撒在godaddy服务器上运行??? 0_o .......
作为天才我0_0我决定一次从段落中删除一个单词.神奇地......随着森林中的所有生物聚集在一起 - 当我最终到达段落中的" 文件 " 这个词时,将其移除!像魔法一样 - " () "保持为" () "并且不会转换为" ()?!?!???!?!?:\如何?我只是从文本中删除了" 文件 " 这个词. ..这怎么会改变什么?什么是" 文件 " 这个词导致改变字符串的保存或转换方式?
好的 - 所以我在应用程序的任何一个表单字段中对此进行了测试.每一次,在任何字段中,如果您键入单词" file "后跟一个" ( "它将第一个" ( " 转换为" (;和下一个" )转换为" ) " ;
所以..如果字符串是:
" 文件(任意数量的字符或文本)任何其他文本或字符 "
在帖子上,它将神秘地转换为:
" 提交(任意数量的字符或文本)任何其他文字或字符 "
从字符串中删除单词" file ",你会得到:
" (任意数量的字符或文字)任何其他文字或字符 "
外星生物归还被绑架的" () "
任何人都知道这里到底会发生什么?
是什么造成的?
"文件"这个词是一个绊倒某种安全措施的关键词吗?将其整合为"file()"???
我不知道 :\
这是我见过的最奇怪的事情......除了那个时候我走进了爸爸妈妈0_o
任何帮助将不胜感激,我肯定会给你买啤酒:)
非常大的头颅 - (对于这种温柔的自我来说有很大的力量) - Noo-Noos这里的筹码暂停了这个问题为"关闭主题"大声笑......对上帝说实话,这些家伙是如此愚蠢.
所以 - 为了安抚stack-gestapo - 我将尝试编辑这个问题,以便它......"关于主题"??? 0_o ...什么都适合你哦,所以"国王"Stack Guys O_O - 太糟糕了,你永远不会发现这样的错误......也许有一天.;)
示例代码:
<textarea name="notes">Always run credit card on file (we do not charge this customer for pick-up or return) blah blah</textarea>
<?php
if(isset($_POST['notes']){
$this->db->where("ID = ".$_POST['ID']);
$this->db->update('OWNER', $_POST['notes']);
}
?>
Run Code Online (Sandbox Code Playgroud)
结果MySQL存储:
"总是运行信用卡存档,(我们不收取此客户的接送或返回)等等等等"
我不是在寻找一种方法来阻止它,或者清理它...我明确地问"它是什么原因造成的"
小智 6
/*
* Sanitize naughty scripting elements
*
* Similar to above, only instead of looking for
* tags it looks for PHP and JavaScript commands
* that are disallowed. Rather than removing the
* code, it simply converts the parenthesis to entities
* rendering the code un-executable.
*
* For example: eval('some code')
* Becomes: eval('some code')
*/
$str = preg_replace('#(alert|cmd|passthru|eval|exec|expression|system|fopen|fsockopen|file|file_get_contents|readfile|unlink)(\s*)\((.*?)\)#si', "\\1\\2(\\3)", $str);
Run Code Online (Sandbox Code Playgroud)
这是XSS Clean的一部分.(系统/核心/ Security.php)
如果您希望过滤器每次遇到POST或COOKIE数据时自动运行,您可以通过打开application/config/config.php文件并设置它来启用它:
$ config ['global_xss_filtering'] = TRUE;
https://www.codeigniter.com/user_guide/libraries/security.html
| 归档时间: |
|
| 查看次数: |
1101 次 |
| 最近记录: |