【发布时间】:2012-02-12 02:31:03
【问题描述】:
我目前正在开发一个旧的 PHP 应用程序。为了让您了解应用程序是什么样的:
- 后端大约 14,000 LOC。前端大约是 3,000 LOC。
- 每个url都是一个php脚本,不使用类。
- 这些 php 脚本中的每一个都有一个与之关联的 smarty 模板。
- 它大量使用了 PEAR 表单生成插件。
- 前端提供两种语言。这是通过复制 php 脚本 + 模板来完成的。
- 它没有遵循许多最佳实践,例如转义所有 sql 参数、重定向发布请求、将 php 脚本置于 Web 根目录之外、XSS 保护、CRSF 保护。
- 该应用有两个主要开发人员,我正在开发它以提供帮助。
- 该应用程序被多个客户端使用。他们每个人都可能有一个稍微改变的版本。
假设您有两周时间,您会如何修复此应用程序?有没有什么框架你会推荐它特别适合这种类型的应用程序并且可以逐步引入?
我在想也许可以从引入 ORM 开始,以摆脱 sql 注入并改进意大利面条式代码来构造 sql 查询。
编辑 1::因为人们似乎经常关注 SCM 问题。我确实使用 git 来跟踪我自己的本地更改。我只是暂时在这个应用程序上工作,所以我真的无法告诉其他开发人员使用哪些工具。此外,这并不是真正的问题。
编辑 2: 我考虑框架的原因是 a) 其他开发人员提出了 b) 它会给项目一个更严格的结构,所以错误(如 CSFR)更多以后很容易避免。
【问题讨论】:
-
什么坏了?需要修复什么? SQL注入?输出编码?
-
它不安全并且有意大利面条代码。
-
当我读到这篇文章时,我在想,你是否可以让这样的东西保持活力 ^^ 我不认为你可以在 2 周内重写它,但我强烈建议你做 something
-
我希望很明显不是我写的。
-
明显的第一步:实施SCM SYSTEM