草庐IT

风险评估

全部标签

php - preg_replace 带有/e修饰符的代码评估

我正在寻找eval()的替代方法来执行字符串变量中包含的代码,并注意到preg_replace带有/e修饰符。但是,代码的计算非常奇怪。例如,echo()在php5.3.6中导致错误:错误信息:Parseerror:syntaxerror,unexpectedT_ECHOin/Users/.../test.php(4):regexpcodeonlineFatalerror:preg_replace():Failedevaluatingcode:echo('Hello,world!'.PHP_EOL)in/Users/.../test.phponline4当print()工作并输出Hel

php - 安全地评估简单的数学

我想知道是否有一种安全的方法来评估数学2+210000+1200010000-202+240-20+23-12无需使用eval()因为输入可以来自任何用户。我需要实现的只是整数的加法和减法。是否有任何已经存在的片段,或者我没有遇到过的任何PHP函数? 最佳答案 考虑到PHP中可用的各种数学函数,我会质疑使用eval。您说过您只想做简单的数学运算——使用eval的唯一原因是执行更复杂的操作,或者从用户那里接受完整的方程式。如果你只是想加或减,用intval清理输入然后去镇上:$number1='100';$number2='shell

php - Assets 的 using/bundles/path 是否存在任何安全风险?

我在我的Twig模板中使用图像的/bundles/路径,例如这是否存在任何安全风险,用户可能会知道我正在使用symfonyfw,并利用某些东西,或者用户可能会知道我的包名称,谁知道这会导致什么,或者用户可能会能够热链接我知道可以通过服务器设置纠正的文件,但是就混淆和安全性而言,这样做有什么问题吗?请注意,我正在基于此fw开发一个企业站点,并且我必须遵守保密等规定,它不像一个开源包或任何东西。 最佳答案 好问题。理论上不应该。Symfony应该足够安全,这样即使知道您正在使用Symfony和/或什至您正在运行的确切版本,黑客仍然无法破

php - Cookie 是否存在安全风险?

假设我们有一个网站要求用户提供他的姓名。网站然后将此值存储在cookie中,并在下一页上通过PHP检索它并以某种方式使用它(也许页面将名称显示为文本)。用户是否可以修改cookie数据以注入(inject)恶意代码?cookie数据在被脚本检索时是否应该清理?(这是一个假设的场景。显然这里不需要cookie。) 最佳答案 Couldausermodifythecookiedatatoinjectmaliciouscode?Shouldcookiesbesanitizedasthey'reretrievedbythescript?注入

php - 如果用户只查看自己的数据——是否存在 XSS 风险?

如果我的网站只允许用户查看他们自己提交的数据,而永远不允许其他用户提交的数据(即没有一般的“帖子”等)——那么我的网站是否真的存在XSS风险?我仍将致力于XSS解决方案(如httmlspecialchars()等)-但我很好奇攻击者是否可以通过查看他们自己的XSS攻击获得任何东西? 最佳答案 攻击者无法通过对自己使用跨站点脚本技术获得任何好处。跨站点脚本的目的是以恶意方式操纵向用户显示的页面元素,无论是网络钓鱼还是读取cookie。换句话说,攻击只能影响客户端实体。但是,请务必牢记“用户只查看自己的数据”的含义。假设我有一个网站,用

php - SQL connect.php 安全风险?

我正在编写一个PHP文件来连接到我的SQL服务器以用于网站登录系统,我很害怕我会留下巨大的安全漏洞。我的connect.php文件位于网站根目录的一个目录中:$db=newmysqli('localhost','publicguest','**********','website');密码在哪里打开看。我知道当有人浏览该网站时,他们无法通过源代码看到PHP代码,但这是不安全的吗?避免这种情况的常用方法是什么? 最佳答案 如果您的服务器存在配置问题,特别是未执行php脚本,那么有人可能能够获取该信息。为避免这种情况,您可以将文件放在文

php - 将字符串评估为 PHP 代码?

我有一个字符串,我想让PHP将其作为一段代码读取。原因是我想预先构建PHP的指令集,然后再执行。目前我有:$string='$this->model_db->get_results()';期望的结果是:$string2=$this->model_db->get_results(); 最佳答案 你可以有可变的变量/函数,但不能有可变的方法链。但是,您可以使用可变变量/函数创建方法链。查看php文档的这一页:http://php.net/manual/en/language.variables.variable.php它显示了使用字符串

php - 如何从评估范围中删除 $this?

我正在编写简单的模板引擎和堆栈问题:$this即使在取消设置后仍落入eval范围。classfoo{publicfunctionmethod(){$code='var_dump(isset($this));';unset($this);var_dump(isset($this));//produce:booleanfalseeval($code);//produce:booleantrue}}$foo=newfoo;$foo->method();如何在不修改$code值的情况下避免这种情况? 最佳答案 我建议创建unboundclo

php - PHP的mail()函数有注入(inject)风险吗?

我想知道以下代码是否存在任何潜在的安全风险。每当用户提交评论时,我都会在我的博客上使用它,它会向我发送一条短信:mail('cellnumber@messaging.sprintpcs.com','',"Commentpostedby$name:$comment","From:comments@example.com");其中$name和$comment是用户输入的值,它们还没有以任何方式真正被清理过。用户是否有可能在这里做任何恶意的事情?mail()文档对此没有任何说明,但将用户输入的值直接粘贴到字符串中感觉不对。是否存在任何真正的风险,或者我只是偏执狂?

php 在获取文件内容之前评估代码

我有一个文件B590.php,它有很多html代码和一些php代码(例如登录用户名、用户详细信息)。我尝试使用$html=file_get_content("B590.php");但是$html会将B90.php的内容作为纯文本(带有php代码)。有什么方法可以在评估后获取文件的内容?似乎有很多相关问题,例如thisone和thisone但似乎没有人有任何明确的答案。 最佳答案 您可以使用include()来执行PHP文件和输出缓冲以捕获其输出:ob_start();include('B590.php');$content=ob_g