问题标签 [suhosin]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - MySQL:允许通过表单提交 PHP 代码和 SQL 语句
这是我的情况:我有一个使用 CakePHP 和 MySQL 构建的网站。我的网站有一个公共论坛,成员可以在其中发布代码示例。其中一些代码示例将包含 PHP 和 MySQL 代码。
我知道这可能是一件危险的事情,但对于一个:只有我特别“批准”的成员可以发布,第二个:我相信 CakePHP 已经使用参数化查询......虽然我确信仍然有涉及的其他风险,这不是我的问题所关心的。
问题:
在我的本地测试环境中,我可以提交包含 SQL 语句和带有 php 代码的字符串的帖子,例如<?php phpinfo(); ?>
;但是,在我的生产服务器上运行完全相同的代码时,我不能。
我没有被重定向到/posts/index
(通常在发布后发生的情况),而是被重定向回我之前所在的同一页面(/posts/edit/25
例如)。似乎当我尝试提交包含“非法”子字符串的表单数据时,提交静默失败,CakePHP 只是将我发送回原来的位置。(没有代表 CakePHP 的 flash 消息。)
到目前为止我的诊断:
/www/app/tmp/logs/error.log
在我尝试发布此数据后,CakePHP没有显示任何错误迹象。我目前无权访问任何其他服务器日志文件。
我尝试从我的帖子中删除一些 php 代码。我能够提交类似 的字符串<?php echo 'Hello World'; ?>
,但如果phpinfo()
表单数据中的任何地方都有类似的函数,则帖子将被“拒绝”。用不间断空格填充我的 SQL 示例也使我能够提交包含 SQL 语句的表单数据。
CakePHP 使用的 MySQL 用户帐户有一点限制。我完全忘记了它允许执行哪些操作,但我认为它们只是select, insert, update, delete, create, drop
,也许还有其他一些。
但是,我也在本地使用 phpMyAdmin 来管理生产数据库,当我通过 phpMyAdmin 访问它时,我使用的是具有最大权限的管理员帐户。当我通过 phpMyAdmin 手动更改数据时,phpinfo();
我的代码示例中的字符串不会被拒绝!
尽管这似乎是一线希望,但我已经使用 CakePHP 设置测试了我的网站,以使用具有最大权限的 MySQL 管理员用户,但我仍然无法通过面向用户的表单提交我的不安全字符串。
到目前为止,我不满意的结论:
由于完全相同的 php 代码根据我的环境表现不同,我怀疑这与我的 PHP 版本、MySQL 版本或我的系统管理员已实施的某些安全措施有关。
不过,我的系统管理员很难联系到,所以我试图自己找出可能导致问题的原因。
我的问题:
我的问题可能是什么?是否有禁止“不安全”字符串的 PHP 设置,或者我可以要求我的系统管理员更改的其他一些众所周知的设置?或者这可能是一个 MySQL 设置?(很难说我的 phpMyAdmin 可以做 Cake 做不到的事情的奇怪能力。)或者我该如何诊断这个问题?(我自己;或者,我应该问我的系统管理员什么样的问题?)
更多可能有用的数据:
所以,这是我根据 phpMyAdmin 的本地测试环境:
这是我的生产服务器的环境:
如果有帮助,我也愿意为两台服务器发布 phpinfo 的某些部分。
我从 phpinfo 中发现了一些可能有助于诊断问题的东西:
当地的:
- PHP 版本 5.4.9-4ubuntu2.3
- Zend 引擎 v2.4.0
生产:
- PHP 版本 5.3.26
- Zend Engine v2.3.0,版权所有 (c) 1998-2013 Zend Technologies
- ionCube PHP Loader v4.2.2,版权所有 (c) 2002-2012,由 ionCube Ltd. 和
- Zend Guard Loader v3.3,版权所有 (c) 1998-2010,由 Zend Technologies 提供
- 使用 Suhosin v0.9.33,版权所有 (c) 2007-2012,由 SektionEins GmbH 提供
- 此服务器受 Suhosin Extension 0.9.33 保护
我怀疑这个“Suhosin”扩展可能与它有关,尽管我不太确定如何......
他们的页面(http://www.hardened-php.net/suhosin/a_feature_list.html)表明可能有一些“保护”:
- 透明保护打开的 phpinfo() 页面
- 实验性 SQL 数据库用户保护
- 过滤功能
- 可配置的违规操作
- 只是阻止违反变量
- 发送 HTTP 响应代码
- 重定向浏览器
事实上,这听起来很可疑!我可能不得不和我的系统管理员谈谈这件事;不幸的是,关于 Suhosin 的文档太少了,我不知道它是否真的是罪魁祸首,所以我还不想排除其他一切。
不过,这可能很重要。这些是 Suhosin 的设置;它们对我来说并没有多大意义,但也许一些 PHP 向导可以突出显示一些重要的关键字:
提前感谢任何可以帮助我解决此问题的人。恭喜你读到这里!
php - 我的网站是否受到攻击?Suhosin 模拟,IP Log 中非常奇怪的活动
我会先说我不是网络开发人员,我在这个领域也没有太多知识。我是一名企业主,我的客户购买产品的网站数量很少。几分钟前我注意到了这组查询,对于我这个外行人来说,它们看起来非常可疑。看起来好像他们正试图从我的数据库中提取数据?我可能完全错了,但是请有人告诉我他们认为这里发生了什么。
笔记:
- 当大多数普通观众被列为 GET 时,所有都以 POST 方法列出。
- 下面的所有内容都紧跟在我的域名之后,例如 examplesite.com/xxxxxxxx
以下是查询:
还有大约 6 个类似的查询。
注意:当我点击该链接时,我的网站给出了找不到页面的错误。当我尝试访问 site.com/cgi-bin/ 时,我的主机收到了 stock 403 禁止错误。
请问有什么想法吗?我在这里偏执吗?
编辑:另外,在我的文件管理器中,我的 cgi-bin 文件夹是空的:“这个目录是空的”。
php - 如何修复我的 suhosin.so 错误
我是(非常)数据库新手。我正在设计一个网站,并且很高兴我能够处理我的错误日志中的错误。最近我的错误日志一直在“PHP 警告:...无法加载...suhosin.so”
显然,每当我查询某些内容时,都会创建一个新条目。不幸的是,谷歌搜索告诉我两件事:(1)错误并不是什么大问题(但我很自豪我的错误日志停止增长!)和(2)suhosin.so 是一个高级主题(和安全补丁)对于mysql。
高级部分让我有点害怕如何“修复”它......
请帮忙。
php - 如何编写我自己的 mt_rand() 和 mt_srand?
我有一个大量使用 mt_rand 和 mt_srand 的应用程序,问题是许多主机提供商默认启用 suhosin.mt_srand.ignore,这导致我的应用程序无法正常工作,因为播种不起作用...
由于我的应用程序已经在一些托管服务器上运行(不启用此扩展),我想在 php 中创建我自己的 mt_rand 和 mt_srand 函数,并让它们返回与内置服务器相同的结果(对于相同的种子)在功能上,这样我就不会依赖主机提供商是否启用了这个扩展。
我看过 rand.c ( http://lxr.php.net/xref/PHP_5_4/ext/standard/rand.c ),它是 mt_rand() 和 mt_srand() 的源代码,但我知道C很差,我自己不能迁移到php。
有谁知道怎么做?或者在帮助我的时候?
suhosin - 什么 suhosin 补丁适用于 php 5.3.28?
我在我的 openvz VPS 上运行 PHP 5.3.28 并想用 Suhosin 重新编译我的 PHP。但似乎 suhosin 没有为我的 PHP 版本发布任何补丁。我应该改用 5.3.2 suhosin 补丁吗?
任何帮助将不胜感激
php - Magento 只保存 325 个属性值
admin 使用 magento 管理来管理属性集及其值。我们的商店在一个或多个属性集中有超过 325 个值,但 magento 只保存了 325 个值。为什么?我们将 suhosin 与此设置一起使用:
我们的内存限制和变量限制没有完全使用。只是我们的问题?有人可以帮我吗?这;)
php - 使用 suhosin 增加 php 中的 post vars 限制不起作用
我有一个很大的表格,大约有。2000 个输入。一些输入是多维数组(第 4 级深度)。
但是我的服务器不允许超过 1120 个 post Vars。我增加了 suhosin 的以下参数,并且根据 phpinfo 成功增加了这些参数。但它仍然不允许超过 1120 个变量。有什么建议吗?
php - 外壳执行已禁用
我的服务器上的 shell exec 有点麻烦。遵循一些教程后,我更改了我的 php.ini:
这是我的 phpinfo() 并且没有引用 shell_exec 命令。我不知道这个 suhosin.executor.func.blacklist 来自哪里,因为它在我的 /etc/php5/apache2/conf.d/suhosin.ini 中被注释掉了。
我在 Ubuntu 12.04 下使用 zpanel。谢谢!
php - Suhosin 和禁用评估
我已经在我的专用 CentOS 服务器上安装了 Suhosin。我有大约 80 个帐户,其中大多数运行 Joomla 或 Wordpress 网站。当涉及到 eval 代码的黑客攻击和注入时,其中一些已经过时了。
我想启用 Suhosin 的禁用 eval 功能,但不会破坏以合法方式使用 eval 的网站的功能。我浏览了文档,据我了解,最好的方案是在 php.ini 中添加它:
根据我阅读文档的理解,黑名单中的任何内容都将被删除并记录,因为白名单是空的。但事实并非如此。似乎一切都被删除并记录了。
由于制作白名单几乎是不可能的,我想问一下这是否与我对配置的误解有关,或者某些东西没有按预期工作。
提前感谢您的任何帮助。
php - PHP 在运行时修改 suhosin 设置
是否可以在运行时执行时修改 Suhosin 设置?我问是因为 PHPUnit 使用了一些被 Suhosin 禁用的功能(比如 vfs 协议和用于模拟的 eval ),我想在我的测试引导程序中修改这些设置......