个人网站的插件和其执行

开发网站的时候想要不登录服务器一条一条地执行命令来实现数据库、日志和网站文件的备份,那么就可以把这些操作编写成插件,并使用 GET 请求,通过 URL 传入的参数来配置和启动插件进行相应的操作。

这样做的好处有几点:

  • 不需要每次手动进行数据的备份工作,免去了那些登录服务器和对数据库执行命令的操作。
  • 可以另外编写一些辅助的程序对此服务器进行更高级的操作,更容易地实现网站的运维自动化。
  • 在发生紧急事件等需要立即保护数据安全、进行数据备份或者需要进行其他操作的情况下,可以大幅度提高操作的及时性和可靠性。

具体实施方法是:

  • 在网站的根目录创建一个插件目录,将插件的“启动器(launcher)”放在目录中作为启动其他插件的控制器,并对传入的 GET 参数进行过滤防止危险的 URL 传入。我们可以在 launcher 中添加密码认证,URL 必须提供 launcher 中内置的密码来证明 URL 来自于可信的用户(可能这个认证有点简单了……),另外在 launcher 中对可以启动的插件做限制,只允许代码中规定的几个插件运行,其它不在这些规定的插件名称中的操作被全部舍弃。为了增加安全性,URL 传入的参数值只能被用作 switch 判断,不参与实际的代码运行。
  • 在目录中(或者在网站目录以外更安全)创建一个插件库(lib)目录,将插件脚本文件放在 lib 目录中,可以在插件代码中做判断,若没有运行 launcher,那么插件脚本不能独自运行。

注:

  • 可以把插件写成一个类的形式,若疏忽导致其独自运行,这样也不会产生很大的副作用。
  • 在 launcher 中添加日志功能,并定期更换其中的密码。
  • 学习更多知识后会更新这篇文章。

个人网站的插件和其执行
https://maphical.cn/2017/08/plugin-system-of-personal-website/
作者
MaphicalYng
发布于
2017年8月24日
许可协议