草庐IT

php - 如何发现sql注入(inject)漏洞?

有没有办法找到SQL注入(inject)漏洞?注意:我问的是如何在您控制的服务器上找到它们,以便您可以修复它们。我不是在问如何在别人的服务器上检测到它们以利用它们。有没有一种方法可以在不打开每个页面并执行ctrl+f的情况下找到mysql_query()的每一次出现? 最佳答案 使用linux,您可以使用grep实用程序。find/dir/containing/files-typef-name'*.php'|xargsgrep--color=auto"mysql_query"/dir/containing/files:包含您的PHP

php - SQL 注入(inject)易受攻击的代码,即使我们正在清理输入 mysql_real_escape_string

我们被攻击了;黑客从下面代码中的页面进入系统,但我们无法找出这段代码中的实际问题。您能否指出此代码中的问题以及可能的修复方法? 最佳答案 这里的问题在$pass=hash("sha1",$pass,true);你需要这样写$pass=hash("sha1",$pass,false);迁移到PDO是一个不错的选择。让我们看看为什么会这样:你的代码正在做的是返回一个原始的二进制散列,这意味着在某个时间点散列可能包含一个相等的字符=,对于您的示例,在这种情况下导致SQL注入(inject)的散列是"ocpe"因为散列("ocpe",sha

php - 已通过 SQL 注入(inject)攻击的登录代码示例,尽管 mysql_real_escape_string...

我使用CodeIgniter,在破解方面遇到了麻烦。是否可以对以下登录代码进行SQL注入(inject):functionprocess_login(){$username=mysql_real_escape_string($this->input->post('username'));$password=mysql_real_escape_string(MD5($this->input->post('password')));//Checkusertable$query=$this->db->getwhere('users',array('username'=>$username,'

php - mysqli_stmt_bind_param SQL注入(inject)

使用preparedstatements和mysqli_stmt_bind_param是否还有注入(inject)风险?例如:$malicious_input='bob";droptableusers';mysqli_stmt_bind_param($stmt,'s',$malicious_input);在幕后,mysqli_stmt_bind_param将此查询字符串传递给mysql:SET@username="bob";droptableusers";或者它是否通过API执行SET命令,或者使用某种类型的保护来防止这种情况发生? 最佳答案

php - 中间件中的 Laravel 依赖注入(inject)

我正在使用Laravel-5.0的默认Authentication中间件,但我将handle函数的签名更改为:publicfunctionhandle($request,Closure$next,AuthClientInterface$authClient)我还在服务提供商中注册了AuthClientInterface:publicfunctionregister(){$this->app->bind('App\Services\Contracts\AuthClientInterface',function(){returnnewAuthClient(env('AUTH_SERVER_

php - 防止 SQL 注入(inject)

我正在开发一个网站,我正在尝试保护连接部分。我在$login上使用了addslashes函数来阻止SQL注入(inject),但一些friend告诉我这不够安全。但是,他们没有向我展示如何利用此漏洞。我/你能怎样破解这段代码?我怎样才能保护它?0){$data=mysql_fetch_assoc($req);if($password==$data['pwd']){$loginOK=true;}}}?> 最佳答案 你应该使用mysql_real_escape_string用于转义查询中的字符串输入参数。使用类型转换来清理数字参数,使用

php - 如何使用 Shift-JIS 和 CP932 创建 SQL 注入(inject)攻击?

我正在编写一些单元测试以确保我的代码在各种字符集下不会受到SQL注入(inject)的攻击。根据thisanswer,您可以通过使用以下字符集之一注入(inject)\xbf\x27来创建漏洞:big5、cp932、gb2312、gbk和sjis这是因为如果您的转义器配置不正确,它将看到0x27并尝试转义它,使其变为\xbf\x5c\x27。但是,\xbf\x5c实际上是这些字符集中的一个字符,因此引号(0x27)未转义。然而,正如我通过测试发现的那样,这并不完全正确。它适用于big5、gb2312和gbk但都不适用0xbf27或0xbf5c是sjis和cp932中的有效字符。两者都是

php - php中这两种构造函数注入(inject)有什么区别?

我想了解PHP中的依赖注入(inject),我发现在Laravel中有两种方法可以做到这一点。那么假设我有一个像这样的Foo类:classFoo{}现在我有一个名为Bar的类,它依赖于Foo所以我可以这样做:classBar{protected$foo;publicfunction__construct(){$this->foo=newFoo();}}但是在Laravel中,我遇到了像类型提示和反射这样的术语,它们允许我这样做:classBar{protected$foo;publicfunction__construct(Foo$foo){$this->foo=$foo;}}我想了解

php - 我们可以通过用 PHP 扩展它来在函数中注入(inject)更多行吗?

我对正在为我的自定义框架开发的事件系统有一个想法。想象这样一个伪函数。classTest{publicfunctionhi(){Event::add(__FUNCTION__.'isabouttorun.');return"hi";}}假设您需要对更多功能执行相同的操作。(也许您想记录哪些函数在运行时运行,并希望将它们记录在单独的文件中。)除了手动将事件添加到函数中,我们还可以这样做吗?classTest{publicfunctionhi(){return"hi";}}//events.php(It'sapseudocodesomaynotwork.)//Imagineextend's

php - 扩展类时的构造函数注入(inject)

这个问题与Symfony2没有严格的关系,但是因为我使用Symfony2组件并且稍后可能会使用Symfony\Component\DependencyInjection\Container作为DI-Container,所以它可能是相关的。我目前正在使用Symfony2中的组件构建一个小型库,例如HttpFoundation、验证器、Yaml。我的领域服务都在扩展一个基本的抽象服务,只提供Doctrine\ORM\EntityManager和Symfony\Component\Validator\Validator,通过构造函数注入(inject),像这样:abstractclassAb