小编Jes*_*hen的帖子

在PHP中的函数内部从外部获取变量

我试图弄清楚我如何使用一个在函数外部设置的变量.有没有办法做到这一点?我试图将变量设置为"全局"但它似乎没有按预期的那样运行.

我的代码的一个简单示例

$var = '1';

function() {
$var + 1;
return $var;
}
Run Code Online (Sandbox Code Playgroud)

我想要这个,返回值2.

php variables function global-variables

29
推荐指数
4
解决办法
7万
查看次数

在仍然需要访问明文时安全地存储密码

可能重复:
PHP双向加密:我需要存储可以检索的密码

我知道存储用户密码的最佳做法是仅存储密码的不可逆哈希值.

但是,我正在开发一个应用程序,我需要为另一个Web服务存储用户的登录信息 - 我需要定期登录并执行一些维护任务.不幸的是,该服务不提供授权令牌,所以我(非常担心)必须以我可以访问其纯文本值的方式存储密码.我不拥有或控制我正在验证的服务,唯一的方法是"借用"用户的用户名和密码并进行身份验证.

我打算在数据库中AES_ENCRYPT密码,这意味着如果有人能以某种方式访问​​数据库,他们将无法获得明文.但是,我的代码需要访问密钥才能解密它们,因此如果整个服务器遭到破坏,这将无法保护,密码将被泄露.

除了上述加密之外,我是否可以尽可能安全地采取最佳做法或步骤来做到这一点?

编辑

我知道无论我做什么,最终密码必须以明文形式访问,因此受损服务器意味着密码将被泄露,但我想知道我可以采取哪些措施来降低风险.EG加密数据库可以保护我在数据库受损但不是整个服务器的情况下.其他类似的缓解措施将非常受欢迎.

security encryption passwords

11
推荐指数
1
解决办法
2134
查看次数

python中的多线程Web请求 - "名称或服务未知"

我有一个很大的刮擦工作要做 - 由于大量的网络延迟,大部分脚本的时间都花在阻塞上.我正在尝试多线程化脚本,以便我可以同时发出多个请求,但是大约10%的线程死于以下错误

URLError: <urlopen error [Errno -2] Name or service not known>
Run Code Online (Sandbox Code Playgroud)

其他90%成功完成.我正在请求来自同一域的多个页面,因此似乎可能存在一些DNS问题.我一次发出25个请求(25个线程).如果我一次将自己限制为5个请求,一切正常,但是一旦我得到大约10个请求,我有时会开始看到这个错误.

我已经读过在urllib2失败的重复主机查找,它描述了我所遇到的相同问题,并遵循其中的建议,但无济于事.

我也尝试使用多处理模块而不是多线程,我得到了相同的行为 - 大约10%的进程死于同样的错误 - 这让我相信这不是urllib2的问题,而是其他问题.

有人可以解释发生了什么,并建议如何解决?

UPDATE

如果我手动将网站的IP地址编码到我的脚本中,一切都运行正常,因此在DNS查找过程中会发生此错误.

python dns multithreading urllib2 multiprocessing

5
推荐指数
1
解决办法
1630
查看次数

在CherryPy中向浏览器输出错误

我是新手,并且似乎无法弄清楚如果发生错误时cherrypy会向浏览器发出堆栈跟踪或错误消息.

我正在使用mod_wsgi在apache上运行,因此在开发过程中挖掘apache错误日志特别烦人.

我习惯使用PHP,当脚本崩溃时,错误很好地输出到浏览器.调试时这是一个有用的功能.如何在CherryPy中做到这一点?

关于登录CherryPy的这一部分似乎并没有涵盖这一点,除非我遗漏了一些明显的东西.

python browser logging cherrypy stack-trace

4
推荐指数
1
解决办法
2030
查看次数

动态继承的设计模式

这是我正在尝试做的事情,我不确定要寻找什么或者设计它的正确方法是:

我正在为应用程序开发一个异常层次结构.作为其中的一部分,有一些例外有时是致命的,而其他时间是可恢复的 - 特定实例是致命的还是可恢复的是在运行时在异常本身中确定的.出于组织的目的,我希望能够做类似的事情(我在python中工作):

try:
    mightThrowAnException()
except RecoverableException:
    handleThisException()
Run Code Online (Sandbox Code Playgroud)

然后我会有类似的东西:

class MyException(...):
    ...
Run Code Online (Sandbox Code Playgroud)

其中MyException可以将FatalException或RecoverableException作为基类,具体取决于构造函数中发生的情况.

我知道我可以有两个单独的例外MyFatalExceptionMyRecoverableException再提高一个或有其他的代码,但有将是一个很大的不同类型的错误,这可能从代码的多个地方被提出不同的异常,异常必须做一些事情,比如检查错误日志以确定这个实例是否应该是致命的,所以我认为将所有这些代码放入异常处理程序本身是有意义的.

所以有几个问题:

  1. 鉴于我想做什么,这是一个很好的方法,还是有更好的设计呢?
  2. 我已经阅读过有关类工厂的内容,但是我没有看到使用这种方法动态更改基类的简单方法,我认为其他的东西是元类或覆盖了excpetion的__new__()方法而且我不确定是什么这三种方法各有利弊.这些都是正确的方法还是我还需要别的东西?

python oop design-patterns metaprogramming exception

2
推荐指数
1
解决办法
454
查看次数