suhosin.mt_srand.ignore在PHP中持续洗牌阵列的解决方法?
我有一个PHP脚本,需要随机将具有一致结果的数组进行随机化,因此它可以向用户提供前几个项目,然后如果愿意,它们可以从同一洗牌集中获取更多结果. 我目前正在使用的是此(基于Fisher Yates算法): function shuffle(&$array, $seed) { mt_srand($seed); for ($a=count($array)-1; $a>0; $a--) { $b = mt_rand(0, $a); $temp = $array[$a]; $array[$a] = $array[$b]; $array[$b] = $temp; } } 在我的本地安装上工作正常,但是它需要运行的服务器已安装了Suhosin,它覆盖了MT_SRAND,这意味着种子被忽略,数组只是随机洗牌,用户获得了重复的结果. 我在Google上发现的所有内容都建议我禁用suhosin.mt_s
6 2023-09-02
编程技术问答社区
使用PHP会话的安全性
我知道这已经被要求数十亿次,但是我对编码的安全性超级偏执.我正在从事一个小项目.会话数据仅包含: user_id 1 user_name myusername logged_in true csrf_token 87CC51EE94178DF79CCCE2AEBC45D53 这是我的代码. 安全足够在小CM上使用吗? session_start(); ini_set('session.cookie_httponly', 'On'); ini_set('session.cookie_secure', 'On'); ini_set('session.use_cookies', 'On'); ini_set('session.use_only_cookies', 'On'); $rand = rand(1, 10); if ($rand != 1 || $rand != 3 || $rand != 5) session_regenerate_id();
82 2023-08-24
编程技术问答社区
如何覆盖suhosin的最大值?
一个重要的获取参数正在被Suhosin过滤. 当以下内容不起作用时,如何覆盖Suhosin? public_html/php.ini: [suhosin] suhosin.get.max_value_length = 2048 设置suhosin.get.max_value_length以及其他设置为null并崩溃用户会话. - public_html/.htaccess: php_value suhosin.get.max_value_length 2048 无效 - (系统默认设置为:) suhosin.get.max_value_length = 512 suhosin.get.max_value_length = 100000 被过滤的获取参数长576个字符. 解决方案 我们可以通过重建$ _get 来绕过Suhosin // Ove
8 2023-06-01
编程技术问答社区
CakePHP的Cookie越来越乱了-Suhosin相关
由于某种原因,我无法在设置后任何页面上的Cakephp应用程序中阅读任何cookie,唯一返回的是乱码. 我的代码很简单: $this->Cookie->write('Region', 'test'); $reg = $this->Cookie->read('Region'); pr($reg); i取消注释$ this-> cookie-> write()行,而我回来的只是一堆随机控制字符.我最近还升级为Cakephp 1.3,但Afaik这不应该像这样影响cookie ... 直到i 更改服务器,这必须是我问题的根源. . 更新 在进一步探索之后,我发现这是Suhosin Security补丁的一个已知问题在那里更有效的工作? 解决方案 尝试将禁用cookie加密的代码: $this->Cookie->write('Region', 'test', false); $reg = $this->Cookie->read('Region'); pr($r
18 2023-05-30
编程技术问答社区
查询变量的长度不能超过512个字符
我正在努力阅读$_GET数组中包含超过512个字符的查询变量.但是,如果我使用parse_string来解析查询字符串,但是,我可以从生成的数组中读取它. 示例: # GET /test.php?foo=&bar=bar HTTP/1.1 ?> 这对我没有意义,因为$_GET在内部使用parse_str从查询字符串中得出查询变量.我想念什么吗? 解决方案 有一个PHP错误报告. #50449 获取值长于512个字符的参数未显示 $ _GET和$ _REQUEST
4 2023-05-29
编程技术问答社区
没有Suhosin,php 5.4是否安全?
我目前正在开发PHP CMF,该PHP CMF最终将在市售,我想使用特质.但是,问题是特征是PHP 5.4功能,显然流行的Suhosin Security补丁与PHP 5.4不兼容. . 所以我的问题是:在没有Suhosin Security补丁的情况下运行PHP网站安全吗?如果没有,我会离开自己和其他人使用我的CMF开放的漏洞? 注意:我不关心共享托管.预计使用我的CMF的任何人都会对其Web服务器进行管理控制. 解决方案 Suhosin是PHP硬化贴片.它没有修补任何明确的安全性漏洞 - 它只是使PHP脚本中的某些漏洞更难以利用. Suhosin所做的一些变化最终被卷成PHP.例如,Suhosin对输入中的NULL字节的各种保护层是由PHP 5.3.4不必要的,这使文件名中的null字节始终丢失错误(而不是在null字节上默默地截断文件名). > > > > > php 5.4通常被认为没有苏霍菌素是相当安全的.展望未来,只要您的应用程序支持它,您
22 2023-05-28
编程技术问答社区
如何检查Suhosin是否已经安装?
我不熟悉Suhosin(从未使用过),但是如果可能的话,我需要检查使用PHP是否已安装.这是我正在编写的安装程序的一部分.谢谢. 解决方案 检测Suhosin扩展名使用Extension_Loaded(),无论它是动态加载还是静态编译: extension_loaded('suhosin'); 要检测Suhosin-Patch,请检查恒定存在: constant("SUHOSIN_PATCH"); 其他解决方案 只需在您的文档根中写下php文件,例如 它将打印与PHP安装相关的所有信息,只需在您的服务器上安装" Suhosin"块的" Suhosin"块,您可以找到设置所有值的块. 其他解决方案 extension_loaded('suhosin'); 如果扩展名未加载,则可能仍可以通过if (!extension_loaded('suhosin')) { if (!dl('suhosin.so')) { /
32 2023-05-26
编程技术问答社区
无法使用AJAX文件上传器上传5MB的文件
我正在使用文件上传器插件(来自: https://github.com/valums/file-上传者)将文件上传到我的网站. 如果您使用的是ModeN Web浏览器(如Firefox 6或Chrome 13),那么它通过将文件流式传输到帖子正文中,可以为您提供进度栏.如果您使用的是(或旧浏览器),它将返回标准$ _files(使用隐藏的iframe). 一切正常工作正常,但突然间我无法在Chrome或Firefox中上传5MB文件.当我在Chome或Firefox中载一个5MB的文件时,我得到500个错误,我的PHP代码甚至没有跑.如果我使用Internet Explorer(使用$ _files),它可以正常工作. 这必须是一个配置问题,因为我的PHP代码甚至没有运行.所以,我检查了我的设置. /etc/php.ini upload_max_filesize = 15M post_max_size = 16M 我寻找LimitRequestBody,
66 2022-12-20
编程技术问答社区
PHP增加内存_限制超过128M
我已经使用标准Apache和PHP运行Debian挤压,通过能力安装. 否我尝试运行: 结果:1​​28m128m 我试图改变这种行为和一些事实: /etc/php5/apache2/php.ini: safe_mode = Off memory_limit = 128M /etc/php5/apache2/conf.d/suhosin.ini: [suhosin] suhosin.memory_limit = 2048M 我可以使用phpinfo(); service apache2 restart后验证此设置. 为什么我无法将内存限制设置在128米以上? 注意:
3926 2022-07-19
编程技术问答社区