草庐IT

lldb_injected_self

全部标签

php - 在 PHP Web 应用程序中使用依赖注入(inject)

最近看了很多关于依赖注入(inject)的书,理论上讲了很多道理。拥有易于测试、单一责任类的想法听起来很聪明。但是,我正在为要走多远而苦苦挣扎。我现在正在开发一个PHPWeb应用程序,它有一个CMS组件并且主要由数据库驱动。在CMS中,您可以创建页面,页面本身是使用各种小部件构建的。小部件可以是纯HTML(来自所见即所得编辑器),也可以更复杂一些,例如照片库。这是重要的部分,照片库小部件依赖于其他数据库模型,如PhotoGallery和PhotoGalleryImages才能正常运行。根据MiškoHevery,我不应该通过应用程序的不同层传递对依赖项的引用。相反,每个类应该简单地“请

php - 如何保留依赖注入(inject)容器 (PHP) 的实例

我使用DI概念已有一段时间了,但现在我开始使用依赖注入(inject)容器(DIC)。尽管我不清楚一件事。在我的DIC中,我保留(例如)一个Config对象和Request对象。我知道请求范围内的这些对象(每次从该容器请求它时都使用相同的实例)保持不变。但这仅在我重新使用DIC的相同实例时才会发生。我应该如何在类里面通过DIC?说我想在我的Router类中使用它,我需要在我的Router类的构造函数中传递它吗?但是Router类是在另一个类中创建的,那个类应该也已经有这个DIC对象了。或者我应该为这个DIC创建一个单例吗? 最佳答案

php - 如何记录试图进行sql注入(inject)的人

这里有很多方法可以保护您的代码免受SQL注入(inject)攻击。但我需要的是如何记录sql注入(inject)攻击,以便我们可以将他(攻击者用户)添加到黑名单用户数据库中。我在这里需要的是一种函数,如果存在sql注入(inject),它将返回true。 最佳答案 您可以使用PHP-IDS检测安全攻击(不仅仅是SQL注入(inject))并添加自定义行为。在我的例子中,我在每个请求开始时运行PHP-IDS。如果检测到问题,我会登录到数据库,向用户返回一条通用错误消息,然后die()。请注意,PHP-IDS不会检测所有SQL注入(in

php - $_SERVER ['PHP_SELF' ] 和 $_SERVER ['SCRIPT_NAME' ] 有什么区别?

我有一个php框架,我使用$_SERVER['SCRIPT_NAME']来优化可移植性。这样我就不需要再手动配置路径了。$this->base_url=str_replace('index.php','','http://'.$_SERVER['SERVER_NAME'].$_SERVER['SCRIPT_NAME']);但我注意到$_SERVER['SCRIPT_NAME']和$_SERVER['PHP_SELF']返回完全相同的字符串。那么,有什么区别呢?我该如何选择? 最佳答案 区别http://sandbox.phpcode

php - 防止 PHP Web 应用程序中的 JavaScript 注入(inject)

需要采取哪些措施来防止或阻止JavaScript注入(inject)发生在PHPWeb应用程序中,以免泄露敏感信息(PHP、HTML/XHTML和JavaScript中的最佳实践)? 最佳答案 好的第一步是应用questionGertGlinked中列出的方法.这详细介绍了可在不同情况下用于清理输入的各种函数,包括mysql_real_escape_string、htmlentities()、htmlspecialchars(),strip_tags()和addslashes()尽可能避免将用户输入直接插入数据库是一种更好的方法。雇

PHP 依赖注入(inject)

我正在努力了解依赖注入(inject),并且我在很大程度上理解它。但是,如果由于某种原因,我的一个类依赖于多个类,而不是在构造函数中将所有这些都传递给这个类,是否有更好、更明智的方法?我听说过DI容器,这是我解决这个问题的方式吗?我应该从哪里开始使用这个解决方案?我是否将依赖项传递给我的DIC,然后将其传递给需要这些依赖项的类?任何能为我指明正确方向的帮助都会很棒。 最佳答案 依赖注入(inject)!==DIC人们真的应该停止混淆它们。DependencyInjection是来自DependencyInversionprincip

PHP htmlentities 不足以阻止黑客从表单中注入(inject) html

我有一个带有文本框的表单,该表单将数据发布到一个php文件,该文件使用“htmlentities”函数来安全地向网站所有者发送电子邮件。问题是有人设法获得文本中的超链接,而htmlentities()没有删除它。这是我的文本框html:这是我接收发布数据的PHP代码(我省略了电子邮件代码,因为这不是问题所在。我将其更改为只回显接收到的数据,这样我就可以尝试复制黑客所做的事情。如果我知道怎么做他做到了,我可以找到一种方法来阻止它发生):echotrim(htmlentities($_POST["usertext"],ENT_QUOTES));现在黑客发送了一些数据,结果是html(源代码

php - 在 PHP 中阻止来 self 的网站的特定 IP block

例如,我想阻止来自base89.95(89.95..)的每个IP。我的服务器上没有.htaccess文件,所以我必须使用PHP来完成。if($_SERVER['REMOTE_ADDR']=="89.95.25.37")die();将阻止特定IP。如何阻止整个IPblock? 最佳答案 尝试strpos()if(strpos($_SERVER['REMOTE_ADDR'],"89.95")===0){die();}如果您注意到,===运算符确保89.95位于IP地址的开头。这意味着您可以指定任意多的IP地址,无论后面是什么数字,它都会

php - call_user_func(array(self, 'method' )) - 我必须给类(class)命名吗?

在PHP中,call_user_func(array(self,'method_name'))不起作用。self关键字不能在该上下文中使用。我实际上需要包含类的名称call_user_func(array('class_name','method_name'))。但是,如果我不在静态函数中,$this变量会在该上下文中起作用。为什么不同? 最佳答案 如果您想要当前类上下文的名称,请使用get_class()(不带任何参数)或__CLASS__。你已经写出了差异;self是一个关键字,不能用作数组中的引用(在PHP中应该是哪种类型?)

php - 在 EntityRepository 中注入(inject) EventDispatcher 的最佳方法是什么?

我想知道在EntityRepository类中注入(inject)EventDispatcher的最佳实践是什么。 最佳答案 首先,使用global是一个verybadpractice.我强烈建议你不要这样做。其次,将服务注入(inject)存储库似乎不是一个好主意。它经常会违反法律,例如SingleResponsibilityPrinciple.我会创建一个管理器来包装您的存储库的方法,并将触发您需要的事件。参见howtoinjectrepositorytoaservice了解更多信息。services.ymlservices:m