当前位置: 首页 > 面试题库 >

尽管有PHP魔术引号,但SQL注入成功

勾通
2023-03-14
问题内容

我一直读到魔术引号根本不能停止SQL注入,但是我不明白为什么不这样做!例如,假设我们有以下查询:

SELECT * FROM tablename
  WHERE email='$x';

现在,如果用户输入make $x=' OR 1=1 --,则查询将是:

SELECT * FROM tablename
  WHERE email='\' OR 1=1 --';

反斜杠将由Magic Quotes添加,而不会造成任何损害!

有没有办法我看不到用户可以在此处绕过Magic Quote插入的地方?


问题答案:

技巧通常是传递一个二进制值,以使反斜杠成为有效的多字节字符的一部分。这是关于它的博客文章。



 类似资料:
  • 问题内容: 根据PHP手册,为了使代码更易于移植,他们建议使用类似于以下内容的转义数据: 我还有其他将要执行的验证检查,但是从转义数据的角度来看,上述检查严格地安全吗?我还看到在PHP 6中将不再使用魔术引号。这将如何影响上述代码?我希望不必依赖于特定于数据库的转义函数,例如mysql_real_escape_string()。 问题答案: 魔术引号天生就坏了。它们本来是要清理PHP脚本的输入,但

  • 问题内容: 我现在很困惑,想知道,如果您能为我解决问题。 在最新的Anon / Lulsec攻击之后,我开始质疑php / mysql的安全性。 所以,我想,我该如何保护PHP和Mysql。 问题:谁能向我解释,关于引号,处理PHP和Mysql的 最佳实践 是什么? 尤其是在表单中,为了保护html,我需要某种htmlspecialchars,对吗? 可以使用表单完全利用PHP吗?是否需要任何保护

  • 主要内容:__LINE__,实例,__FILE__,实例,__DIR__,实例,__FUNCTION__,实例,__CLASS__,实例,__TRAIT__,实例,__METHOD__,实例,__NAMESPACE__,实例PHP 向它运行的任何脚本提供了大量的预定义常量。 不过很多常量都是由不同的扩展库定义的,只有在加载了这些扩展库时才会出现,或者动态加载后,或者在编译时已经包括进去了。 有八个魔术常量它们的值随着它们在代码中的位置改变而改变。 例如 __LINE__ 的值就依赖于它在脚本中所

  • 我有一个类,它具有应该被注入的字段。 并且有接口仅由类实现,具有的。 当我尝试启动SpringBootApplication时,会抛出。 为什么接口注册为bean的一个,即使它没有注释,也没有包含任何bean配置? 我发现,如果我不使用作为,一切都很好。 有什么想法吗?

  • 本文向大家介绍php 魔术方法详解,包括了php 魔术方法详解的使用技巧和注意事项,需要的朋友参考一下 从PHP 5以后的版本,PHP中的类就可以使用魔术方法了。其规定以两个下划线(__)开头的方法都保留为魔术方法,所以建议大家函数名最好不用__开头,除非是为了重载已有的魔术方法。PHP 将所有以 _ _(两个下划线)开头的类方法保留为魔术方法。 __toString() 和__invoke()

  • 问题内容: 我想关闭PHP的魔术引号。我无权访问php.ini。 当我尝试添加到.htaccess文件时,出现500个内部服务器错误。这是我的.htaccess文件的样子: 然后我尝试使用,但这没有任何效果。 如何关闭魔术引号? 问题答案: 按照手册,您通常可以在共享主机上安装自定义php.ini,其中未使用mod_php,因此该指令会导致错误。对于suexec/ FastCGI设置,在任何情况下