如果这看起来太模糊而无法在 Stackoverflow 上发布,请原谅。
我的公司聘请了三位开发人员来实施分类广告系统,使用 PHP 和 MySQL。他们已经工作了一个多月,没有使用框架(他们反对使用框架),并且已经实现了基本功能(用户注册和身份验证、广告列表和过滤等)。然而,粗略的测试表明,该系统容易受到常见恶意攻击(CSRF、XSS、本地文件包含)的攻击。
在检查了代码之后,我意识到他们没有在服务器端实现数据验证程序(他们只是使用正则表达式来验证邮件地址,并使用 mysqli_real_escape_string() 来清理字符串以防止 SQL 注入)。他们实现了一些验证例程,但在客户端,使用 JavaScript。显然,这是 UI 的一部分,不提供任何针对恶意用户的安全措施。
他们争辩说,由于三个开发人员不足以从头开始开发一个完整的 web 应用程序(我同意),他们将首先实现功能,然后正确地保护它们,以满足某些期限。无论如何,我都不是经验丰富的程序员,但我相信实现安全性需要更长的时间。此外,如果他们设法以某种方式做到这一点,与从一开始就实施的数据清理例程相比,这将是低于标准的。
所以,我的问题是:(i)在实现功能之后实现安全性(即,至少实现适当的清理程序)是否合理?(ii) 如果 (i) 的答案是“否”,您会推荐哪些参考书目、安全框架(但我猜它们本身就嵌入在 Web 框架中)等来管理安全处理不当的项目?