草庐IT

unicode-escapes

全部标签

php - mysqli_real_escape_string() 中默认字符集的安全隐患是什么意思?

在mysqli_real_escape_string()的PHP文档中,写道CautionSecurity:thedefaultcharactersetThecharactersetmustbeseteitherattheserverlevel,orwiththeAPIfunctionmysqli_set_charset()forittoaffectmysqli_real_escape_string().来源mysqli_real_escape_string在关于字符集的进一步链接中,提到Thecharactersetshouldbeunderstoodanddefined,asith

php - 我应该使用 htmlspecialchars 还是 mysql_real_escape_string 或两者

这个问题在这里已经有了答案:Dohtmlspecialcharsandmysql_real_escape_stringkeepmyPHPcodesafefrominjection?(6个答案)关闭9年前。我让用户输入一些信息(姓名、出生日期等)。然后我必须将这些值插入到数据库中。我应该使用mysql_real_escape_string()吗?防止mysql注入(inject)和htmlspecialchars()要处理html标签,是需要这两个标签还是需要其中一个标签?如果我应该只使用其中之一,那么是哪一个?如果我应该同时使用两者,那么哪个先用哪个最后用?

php - 使用 Codeigniter Escape 函数

我最近在博客中添加了评论部分。Codeigniter说在将数据放入Db之前总是转义数据。(我确实全职清理了xss)。有人说所有事件记录操作都被转义了。我在下面的函数上使用转义是在浪费时间吗?使用下面的函数我对数据进行了转义,但所有数据都进入了转义View。您如何“取消转义”数据以便在没有“”的情况下也可读?我不想使用正则表达式删除每个''以防它在句子中使用我想我真正的问题是,事件记录是否总是转义?即:作者出来'姓名'functioncomment_insert(){$data=array('entry_id'=>$this->db->escape($this->input->post(

php - unicode 模式下的 preg_split : delim_capture not working?

我正在尝试使用正则表达式将一大块中文文本拆分成句子。就我而言,句子分隔符是:全角句号。(0x3002)全角问号?(0xFF1F)全角感叹号!(0xFF01)现在,假设我的$str是这样的:$str="你好。你好吗?我是程序员,不太懂这个我的问题,希望大家能帮得上忙!一起加油吧!";我使用带有这些参数的preg_split:$str2=preg_split("/([\x{3002}\x{FF01}\x{FF1F}])/u",$str,PREG_SPLIT_DELIM_CAPTURE|PREG_SPLIT_NO_EMPTY);$str2现在是一个数组,如下所示:array(3){[0]=>

php - 为什么 mysql_real_escape_string 不认为这些字符是危险的?

我正在学习如何清理我的表单,并且知道使用PHP函数mysql_real_escape_string()有助于转义被视为“危险”或会破坏SQL语法的字符。我正在测试它并注意到它不会转义字符序列,例如--或/**/。这些注释不是SQL中的,它们不能破坏语句的语法吗?您将如何处理mysql_real_escape_string()未涵盖的这些和其他项目并真正净化您的表单? 最佳答案 它们永远不会破坏SQL语句,因为它们永远不会破坏字符串,因此您的字符串保持完整,保护您免受任何讨厌的注入(inject)。但这并不意味着您不想将它们从字符串中

php - 我如何将 preg_match 与字母数字和 unicode 接受一起使用?

我要用PHP建立一个多语言网站,需要有一个preg_match来传递所有Unicode字符和数字。即我需要它来传递英文字母、西类牙文字母、意大利文字母,正如您可能知道的那样,我不想传递其他字符,例如'"_-和...我想要这样的东西:$pattern='/^[unicodecharswithout\'-_;?]*$/u';if(!preg_match($pattern,$url))echo#error; 最佳答案 字母的Unicode属性是\pL所以在preg_match中:preg_match('/^\pL+$/u',$string

php - PHP 中的 json_encode() 返回转义 Unicode 中的汉字

我有一个简单的PHP一维数组。当我执行vardump(echovar_dump($a))时,我将其作为输出:array(3){[0]=>string(3)"尽"[1]=>string(21)"exhausted||toexhaust"[2]=>string(4)"jin3"}但是,当我对它进行json_encode(echojson_encode($a))时,我得到了这个:["\u5c3d","exhausted||toexhaust","jin3"]它返回的十六进制值是正确的,但我不知道如何阻止它给我十六进制值。我只是想让它显示角色。如果我echomb_internal_encodi

php - 为什么要使用 mysql_real_escape_string,addslashes 不会阻止一切吗?

我在浏览文档时无意中发现了mysql_real_escape_string(),但我不明白为什么它在您只需添加斜杠()时就很有用。有人可以向我展示它为何有用的场景吗?我也很好奇为什么它需要数据库连接....这看起来开销很大。 最佳答案 Thereisagreatarticleaboutthishere.还有这个discussion还指出了每种解决方案的优缺点。addslashes()wasfromthedevelopersofPHPwhereasmysql_real_escape_stringusestheunderlyingMyS

PHP - else, 'escape' 嵌套并跳到elseif

我不太确定如何为这个问题命名-这是我正在做的事情的片段:=1&&$membership='active'){if($when_next_allowed>$today_date){$output='Youcannotrenewyourmembershipforanother'.$days_left.'days.';}/*Whatifthemembershipissettoactive,butit'sbeenoverayearsincetheyactivatedit?Wedon'thaveanyserver-sidefunctionsfordeterminingsuchatthetime.

php - Laravel 5 模型 $cats 到数组 utf-8 JSON_UNESCAPED_UNICODE

当您有一个数组字段并将其保存在数据库中时,它会对数组执行漂亮的json_encode但没有JSON_UNESCAPED_UNICODE选项。数据最终是这样的:{"zh":"\u039d\u03ad\u03b1"}这几乎没用。解决方案当然是使用JSON_UNESCAPED_UNICODE标志进行json_encode。是否可以告诉Laravel在保存模型之前添加此选项?我试图避免使用setNameAttribute突变器,因为每次我有这种类型的字段时这样做都会很痛苦 最佳答案 只需覆盖asJson()方法即可。classCatexte