草庐IT

non-escaping

全部标签

php - 链接标识符在 mysql_real_escape_string() 中的重要性

为什么在使用mysql_real_escape_string()时需要将链接标识符作为输入。我知道该函数应该与MySQL查询一起使用,但该函数实际上只是一个字符串操作。 最佳答案 来自thePHPmanual:Escapesspecialcharactersintheunescaped_string,takingintoaccountthecurrentcharactersetoftheconnectionsothatitissafetoplaceitinamysql_query().Ifbinarydataistobeinsert

MySQL之谜: Null value is not different from non-null string

为什么这个查询返回0行?selectt.f1,t.f2from(selectnullf1,'a'f2fromdual)twheret.f1t.f2;这是我的一个复杂查询的精简版。我想比较包含一对一相关数据的两个表,并且我想选择那些包含某些字段的不同值的行。但也可能存在其中一个表中缺少一行的情况。LEFTJOIN正确地为这些行返回空值,但是WHERE子句错误地(或意外地)过滤掉了这些行。为什么-在这种情况下-'null'与任何非空值(如'a')没有区别?让我发疯的是这个selectt.f1,t.f2from(selectnullf1,'a'f2fromdual)t;返回1行(如我所料)但

php - mysql_real_escape_string() 不应该在数据库中留下斜杠吗?

我正在使用smarty和mysql_real_escape_string()进行用户输入,当我用'或"插入一些代码时,并在phpmyadmin中查找它显示时没有反斜杠。当我从数据库中获取记录时,我也没有反斜杠。但是当我只是传递转义字符串而不插入数据库时它是反斜杠的。它不应该添加斜杠,插入它们然后我会我什么时候输出?还是我遗漏了什么? 最佳答案 你错过了它-用反斜杠转义是为了确保查询没有格式错误,例如像这样的东西肯定会破坏并可能冒SQL注入(inject)的风险:insertintotablevalues('whatever'this

PHP mysql_real_escape_string() 和 % 字符

mysql_real_escape_string()对%(百分比)字符有什么作用,它代表了多少安全风险(以及如何解决)? 最佳答案 来自mysql_real_escape_string()documentation:Note:mysql_real_escape_string()doesnotescape%and_.ThesearewildcardsinMySQLifcombinedwithLIKE,GRANT,orREVOKE.就安全性而言,除非您正在运行LIKE、GRANT或REVOKE,否则这不是问题。LIKE可能是唯一真正关注

php - mysql_real_escape_string 应该是我在注册表单中输入的密码吗?

当用户注册时,我使用mysql_real_escape_string清除密码,如下所示$password=clean($_POST['password']);在将其添加到数据库之前,我使用:$hashedpassword=sha1('abcdef'.$password);并将其保存到mySQL中。我的问题是我应该清理它还是在将密码添加到数据库之前对密码进行哈希处理? 最佳答案 嗯,有一个主要的误解。mysql_real_escape_string()不清理任何东西。它与安全完全无关。此函数仅用于转义分隔符,仅此而已。它可以帮助您将字

php - codeIgniter 使用 mysql_real_escape_string() 代替。数据库连接问题

我在带有数据库的服务器上安装了codeigniter我想在我的mac上运行相同的数据库,我使用MAMP并将项目文件夹复制到htdocs中,但是我有这个错误你能帮帮我吗?ErrorException[8192]:mysql_escape_string():Thisfunctionisdeprecated;usemysql_real_escape_string()instead. 最佳答案 不要害怕更改核心文件,只需更改FCPATH/system/database/drivers/mysqli/mysqli_driver.phpfunc

php - 什么时候最推荐使用 mysql_real_escape_string()

我实际上是第一次使用这个函数..并且在找到它之前使用了preg_replace和addslashes。我主要是好奇,因为我即将在我的第一个大型应用程序中检查并加强发布区域的安全性,并且想知道此功能有效的最佳实例,强烈推荐。我已经看到这个功能在几种不同的情况下应用,不仅仅是在发布用户输入之前......而是在一般查询完成时,所以我真的很好奇它的全部可能性,以及如何实现它的全部有效性。此外,我们将不胜感激任何绝对可靠的安全方法和一般性建议。干杯! 最佳答案 理想情况下你应该永远使用它,因为Parameterizedqueries(通过P

php - 没有连接的多字节的mysql_real_escape_string?

让我们考虑一下我将永远做一个SETNAMES'utf8'到mysql连接(所以我需要多字节转义)。是否有不需要mysql连接的mysql_real_escape_string的安全替代方案?在官方页面我发现了一个comment像这样使用str_replace:if(!empty($inp)&&is_string($inp)){returnstr_replace(array('\\',"\0","\n","\r","'",'"',"\x1a"),array('\\\\','\\0','\\n','\\r',"\\'",'\\"','\\Z'),$inp);}够了吗?如果mysql_rea

php - fatal error : Call to a member function where() on a non-object codeigniter $query->num_rows()==1)

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:CodeIgniter-Calltoamemberfunctionselect()onanon-object我是codeigniter的新手,遇到了一些问题。错误消息:fatalerror:在C:\xampp\htdocs\moi\CI\application\models\model_users中的非对象上调用成员函数where()。第12行的php我的模型:classModel_usersextendsCI_Model{function__construct(){parent::__construct()

PHP mysql_real_escape_string() : Access denied for user 'www-data' @'localhost'

我刚刚将我的网站上传到生产服务器上,但出现错误:Warning:mysql_real_escape_string():Accessdeniedforuser'www-data'@'localhost'(usingpassword:NO)infile.phponline106Warning:mysql_real_escape_string():Alinktotheservercouldnotbeestablishedinfile.phponline106函数的代码是include('./../inc/conn.php');if(isset($_GET['query']))$q=clean