这个问题是为了研究目的,虽然我认为这是一个敏感话题?
我的问题很简单。
“我该如何修改,而不只是从 Firefox 中提取缓存?”
但当我彻底搜索这个主题时,出现了更多问题。
首先,从所有资源中,我假设缓存的验证只是为了确保本地缓存与服务器的文件相同,但 ** ETag 和最后修改都可以被操纵来欺骗服务器**。所以我的问题1是,
如果不是出于取证目的,为什么 Firefox 和其他浏览器要努力确保没有人可以修改缓存?
其次,查阅此网页, http://encase-forensic-blog.guidancesoftware.com/2015/02/firefox-cache2-storage-breakdown.html,为什么缓存被视为“取证”?我认为有一种方法可以防止缓存修改发生,但我找不到合法的证据。所以,
像Firefox这样的浏览器使用什么方法/机制来防止缓存修改,他们如此有信心甚至可以将其用作取证证据???
我正在阅读这个问题中提到的 Alex Martelli 的这段代码。我知道这告诉你你当前所在的模块,但是他末尾的这行代码确实让我感到困惑。在文件末尾声明当前模块的语句的含义和意义是什么?sys.modules[__name__]
constant.py
# Put in const.py...:
class _const:
class ConstError(TypeError): pass
def __setattr__(self,name,value):
if self.__dict__.has_key(name):
raise self.ConstError, "Can't rebind const(%s)"%name
self.__dict__[name]=value
import sys
sys.modules[__name__]=_const() #this I don't understand
# that's all -- now any client-code can
import const
Run Code Online (Sandbox Code Playgroud)
基本上,我的问题是,在我看来,这行代码没有做任何事情;我理解错了吗?由于在 Python 中,您不必将类定义放在单独的文件中,因此我认为我并不真正需要两个模块,除非我想重用“const”类。那么在这种情况下sys.moldules[__name__]=_const()
也没有必要......我理解正确吗?