草庐IT

injections

全部标签

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 - sql-injection urls,参数的长度是一个安全问题吗?

我收到了很多涉及sql注入(inject)尝试的点击,这些尝试涉及越来越长的参数。我限制了php中的参数以将它们转换为正整数或零,但我不确定是否存在涉及非常长的参数的某种技巧可能会导致我出现问题(缓冲区溢出问题?)。我知道php中的suhosin补丁对过长的参数进行了某种修补,但我目前还没有。我应该怎么做才能保护自己免受此类情况的影响(来self的日志)?ProductId=47&ItemId=-1025+UNION+SELECT+0x6d6567613164756d706572,0x6d6567613264756d706572,0x6d6567613364756d706572,0x6

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

PHP:使用准备好的语句并防止 SQL 注入(inject)与转义

我确实理解准备好的语句是针对SQL注入(inject)寻求保护的final方法。但是,它们提供的覆盖范围有限;例如,在我让用户决定操作顺序的情况下(即它是ASC还是DESC?等),我不会用准备好的语句覆盖那里。我知道我可以将用户输入映射到一个预定义的白名单。但是,这只有在可以预先创建或彻底猜测白名单时才有可能。例如,在我上面提到的情况(ASC或DESC)中,这可以很容易地映射并根据可接受的值列表进行验证。但是有没有出现白名单无法验证SQL语句部分的情况呢?如果存在这种情况,那么推荐的方法是什么?如果我要全面使用底层数据库的内置转义实用程序(例如mysql的mysql_real_esca

php - Symfony 3 - 如何将验证器注入(inject)服务?

我尝试将验证器注入(inject)我的服务-但我没有找到它:mybundle.service.supplier:class:AppBundle\Service\SupplierServicecalls:-[setValidator,['@validator']]@validator不是预期的RecursiveValidatorhttp://api.symfony.com/3.1/Symfony/Component/Validator/Validator/RecursiveValidator.html-@validator是一个接口(interface)。那么我怎样才能将验证器注入(in