草庐IT

php - 在类中使用数组遍历

我有一个小的编程问题。我正在尝试在一个类中执行一个函数,并且我有一个数组,我正在使用array_walk对该数组中的每个变量执行一个函数。问题是我正在执行的函数是同一个类中的一个方法。我查看了我的代码,但找不到问题所在。请让我知道此错误的可能解决方案是什么,或者如果您看到我没有看到的内容。目前它甚至没有执行函数escape()。我特意在状态变量中添加了一个',因为我希望它被转义,但它没有被转义。一点背景知识:这是我正在构建的数据库类,prepare()方法将有助于在执行查询之前转义查询中的变量。我删除了一些与此问题无关的代码。这是它给我的结果:UPDATEtable_nameSETst

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 - 为什么 mysql_real_escape_string 不认为这些字符是危险的?

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

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 - strip_tags() 和 mysqli_real_escape_string() 的安全性

我在一个关于信息安全的学校项目中,其中一项作业是用PHP编写一些安全页面。我小组中没有人知道PHP,但这不是什么大问题,我们会学到足够多的知识来创建所需的简单页面。助教们给出的其中一个技巧是使用strip_tags()和mysqli_real_escape_string()这两个函数。我认为这些是安全的,但在没有深入了解的情况下我不确定。一些简单的谷歌搜索至少揭示了过去存在的漏洞。由于任务的一部分是尝试破坏其他组的系统,所以我们自己的系统是安全的,并且在其他组的系统中找到可能的漏洞是很重要的。而且大部分群体都会盲目地使用这两个功能。所以我的问题是:strip_tags()中是否存在任何

php - 使用 DAO 或其他东西的 Yii 2 中的 mysqli_real_escape_string?

我正在使用Yii2并且即将开始在其中第一次使用数据库,并且想知道Yii2是否还有其他你应该用来准备的东西数据库的数据,例如标准的mysqli_real_escape_string函数,还是我应该只使用它?我没有使用准备好的语句,我通过他们的databaseaccessobjects访问数据库并想知道如何转义我传递给它的数据?我找到了quoteValue方法,但它包含在Yii调用的内容中Connection表示通过PDO连接到数据库。所以我不确定它是否是正确的使用方法? 最佳答案 正如您所说,您应该使用quoteValue。如果您的d

php - 为什么要费心使用 mysql_real_escape_string() 因为 $_POST 会自动在引号前添加斜杠?

在PHP中,$_POST会自动在引号前添加斜杠,那么为什么还要应用mysql_real_escape_string()呢?例如,当我在输入字段中输入'rrr时,当我回显它时得到\'rrr。 最佳答案 因为只有在您的php配置中启用了MacigQuotes时才会发生这种情况,据我所知,这在当今相当罕见。此外,mysql_real_escape_string还转义了其他与MySQL相关的字符。查看http://php.net/manual/en/security.magicquotes.php有关魔术引号的更多信息。正如你所看到的,这个