草庐IT

assisted-inject

全部标签

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

php - session 注入(inject)?

我应该如何在session中托管用户ID?只是为了插入ID?我的意思是(例如):$_SESSION['id']=1;没有办法由用户自己更改它(作为cookie..)?因为如果是的话,他可以换成任何id。关于它的另一个问题-我如何检查用户是否登录(使用session)?我创建了一个session:$_SESSION['is_logged_in']=true;同样,用户不能只创建一个名为“is_logged_in”且值为true的session吗?或者只是服务器可以控制服务器的值? 最佳答案 PHP中的所有session变量都存储在服务

php - 如何将内存中的用户提供者注入(inject)到服务中?

我正在关注http://symfony.com/doc/current/cookbook/security/voters.html并尝试创建一个自定义投票器,拒绝访问header中不包含有效APIkey和摘要的请求(受http://symfony.com/doc/current/cookbook/security/custom_authentication_provider.html影响-我没有构建身份验证提供程序,因为我需要使用FOSUserBundle提供程序来同样的请求)。我想首先将我的apikey/secret存储在内存中的用户提供程序中,并可能在以后将其迁移到自定义mongo

php - PHP 的 DateTime 类是否从 SQL 注入(inject)中转义日期

通常,我使用PDO的准备语句,类型转换为(int),或PDO::quote()来防止SQL注入(inject)。对于这个应用程序,我需要在将它添加到查询之前使用PHP修改日期。我是否需要采取额外的步骤来防止SQL注入(inject),或者我安全吗?谢谢$date=newDateTime($_GET['suspect_user_provided_date']);$date->add(newDateInterval('P1D'));$sql='SELECT*FROMtableWHEREdateformat('Y-m-d').'"'; 最佳答案