我负责安装和管理由外部开发人员编写的 webapp。
我对 CakePHP 不熟悉,开发人员指示我留下Security.cipherSeed
一个core.php
空白字符串。这可以接受吗?
我问是因为我一直在研究代码,而且我对开发人员的编码能力没有信心。
只有在有区别的情况下,才能通过 HTTPS 访问 webapp。
好吧,这个值与srand()
(使用时Security::cipher
,更新:请注意,Cookie 组件当前Security::cipher
默认用于加密/解密 cookie /update),传递一个空字符串可能会触发警告,说参数 1 应该是长的的字符串。
此外,这将导致 PHP 自动生成一个随机种子,这将使解密使用加密Security::cipher()
的文本变得不可能(或者至少可以说有点复杂)。
因此,如果未修改 PHP 安装或 CakePHP 源代码,以便srand()
自动使用静态种子(这将非常糟糕),或者Security::cipher
从其他地方检索种子(也是一个坏主意),那么您可能应该即使您尚未使用,也不要将其留空Security::cipher
。尽管实际上您无论如何都不应该使用Security::cipher
它,但它已经被弃用了,但是定义一个值但尚未使用它应该不会造成伤害,不定义一个值并尝试使用它很可能会。
为了确保一切正常,请检查源是否Security::cipher
被使用,如果是这样,然后围绕它的使用编写一些测试以确保一切按预期工作。还可以尝试联系开发人员,问他为什么认为应该留空,也许有一些隐藏的魔法在发生,谁知道......
简而言之,如果Security::cipher
不使用,并且绝对不会使用,那么应该可以,可以留空或填上你最喜欢的诗,如果它被使用或者你打算使用它应该没有关系, 然后不要将该值留空,或者如果可能的话,最好使用它Security::rijndael()
。