Encryption of Wordpress Posts

时间:2010-09-27 作者:Snaver

我一直在寻找一个完全私有的Wordpress博客,并在这一过程中找到了有用的博客/教程,如David Hewsons pretty detailed walkthrough.

我目前有一个很好的私有系统(在线),需要登录凭据才能访问博客,现在问题就出在这里。我担心,如果我的web服务器遭到某种方式的黑客攻击(我不会不知道这可能会发生),并且我的数据库被访问,那么我的所有帖子都会被查看,从而破坏所有前端的隐私工作。

我一直在寻找预构建的解决方案来加密帖子本身,但目前还不存在任何解决方案,我需要的是在编写Wordpress插件的正确方向上提供帮助,因为我不知道从哪里开始编写Wordpress中的插件,任何帮助/教程链接都将不胜感激。

我确实对PHP/MySQL有相当广泛的了解,尽管不是API等的Wordpress风格。

5 个回复
SO网友:Rarst

据我所知,仅仅使用WordPress(或任何普通PHP应用程序)是不可能做到的。这与WP中的数据库凭据面临的困境相同-如果FTP被黑客攻击,则黑客从中获取数据库登录名/密码wp-config.php. 因为WordPress(或任何其他PHP应用程序)确实需要它们来访问数据库,所以不可能保护它们。即使它们在某个时候被加密存储,也需要解密。

帖子也是一样,即使在数据库中存储加密帖子,WordPress也需要对其进行解密。若WordPress可以解密它们,那个么那个么那个些黑客账户的人也可以解密。

您可能会以某种方式将密钥从WordPress安装中分离出来,但这只是在转移问题-现在仍然需要考虑保护密钥不被黑客/泄露,它们只是在另一个地方。

SO网友:Jan Fabry

因此,您需要一个系统,在文本进入数据库之前对其进行加密,在文本离开数据库之前对其进行解密。如果您不想在服务器上保存密码,则需要在每次发出需要加密数据的请求时,通过浏览器找到一种提供密码的方法。

您可以在PHP中执行此操作,但也可以在JavaScript中执行。如果我们简化问题,只需要对帖子内容进行加密,而不需要其他数据(标题、日期等),您可能会将代码挂接到管理端的一个TinyMCE事件上,该事件会询问您的密码(或在中记住密码Local Storage 或另一个不离开计算机的安全位置),在文本显示在编辑器中之前对其进行解密,并在保存时再次对其进行加密。这样,WordPress看到的都是加密文本。(您可能需要禁用所有类型的内容过滤器,以便服务器端不会发生任何更改。)

在博客的公共端,您可以做同样的事情:向客户端发送一块加密数据,并使用JavaScript对其解密。

如果你是唯一一个读写的人,这个方案是可行的,否则你需要一种共享加密的方式,但让每个人都有不同的密码等等。但是如果你真的是在单用户场景中,你确定WordPress是你工作的最佳媒介吗?大概Evernote 还是另一种支持加密的笔记解决方案更有效?

SO网友:Casey

我建议你看看这个网站。我是WordPress的新手,还没有建立自己的WordPress博客。然而,在研究创建自己的博客时,我也希望能够加密某些博客帖子。

在谷歌搜索之后,我偶然发现了这个网站http://www.vincentcheung.ca/jsencryption/

基本上,博客帖子是利用JavaScript和PHP加密的。默认情况下,帖子以128位AES加密,但通过重新编译PHP,您可以添加256位AES支持。我还没有开始创建自己的WordPress博客,因为我想看看是否有办法将Vincent的想法以某种方式整合到WordPress中。

通过基于Vincent的工作创建插件,可以在WordPress中对帖子进行加密,而无需访问他的网站,对帖子进行加密,然后将生成的文本/代码粘贴到WordPress帖子中。

当这些帖子被解密后,一切都会在客户端发生。密码或解密密钥永远不会发送到服务器,所有解密都是通过JavaScript在客户端进行的。这意味着,即使黑客掌握了你的数据库,他也无法读取加密的帖子,因为密钥没有存储在数据库中!

虽然我精通PHP,但我还不知道如何编写好的WordPress插件来自己制作插件,但。。。

SO网友:Alex Devon

确切地所有内容都可以由一个组公钥解密,可能有多个私钥保存在客户端。

由于博客在技术上是私有的,因此不需要在仅存储加密数据的中央服务器上维护私钥。

SO网友:Anachronous

虽然不是100%,但这会增加一层安全性:您可以编写一个插件,使用base64\\u encode对特定条目进行加密,然后在编码中添加由用户名的md5散列组成的salt(因为这些内容无法更改),或者类似的东西。base64\\u解码速度非常快,用户可能不会注意到任何延迟。

结束

相关推荐

是否在URI请求参数表单中使用联合/交集查询_POSTS变量?

通常,在创建某种形式的查询时,我会对参数使用一个数组,如下所示: $postslistArgs = array( \'child_of\' => 320, \'parent\' => 320 ); $postslist = get_pages($postslistArgs);但是,在其他情况下,我还需要/想要使用URI样式的查询参数,如下所示:get_pages(\'child_of=