如果重构一个 web 项目,不考虑性能,只考虑安全,开发速度要快,哪种语言的哪种框架比较合适?

2018-01-08 19:07:37 +08:00
 shijingshijing

事情是这样的,美帝客户有一个零部件管理系统,用的是上古的 ASP 开发的(是那种 asp 标签和 html 混合编写的,不是现在的 ASP.Net ),因为一直是内网用,跑在 windows 2003 server 上,也没出什么毛病,就没有重新开发。

现在的问题是,整个公司的业务流程发生了变化,为了提高效率,他们想在国内、泰国、德国建立多个小型仓库,每个仓库要能够访问,而且还要开放给供应商使用,因此决定放到 web 上。

我看了一下业务逻辑,基本上都是 CRUD,没什么复杂的东西,重构应该不复杂。但是数据包含了供应商的报价信息等敏感内容,不能够对外公布,因此特别强调安全性。

目前还没有定实施方案,还在让我做咨询,我需要给他们提供多套方案进行比较,proposal 里面需要一些比较有力的证据或者数据来支持,本人 web 这一块写写业务没问题,谈不上精通,目前写过 PHP ( CodeIgniter,ThinkPHP ),Python(Django),.Net MVC。

另:他们有一些倾向:
1,尽量使用 LAMP 这种开源的方案,微软的方案应该是不会考虑了,不然也不会一直用这个 win 2003 server。
2,他们也不倾向于用 Java,倾向于用 PHP 或者 Python (可能也有我的影响的因素吧),后续有一些自己的设备比如扫码枪、仓库摄像头产生的数据会接入到这个系统。
3,他们不会一次性全部转移到这个新的平台上来,可能会逐步的拿某个国家的一两个小仓库做试点,如果效果不错,再逐步部署迁移。
4,他们反复强调了安全这一块,报价和供应商的信息是绝对不可以泄漏出去的,关系他们的饭碗。

希望各位 web 大佬能畅所欲言。如果后续有办法接过来,可能也会请大佬们来一起分包。

14967 次点击
所在节点    程序员
116 条回复
wujunze
2018-01-08 19:14:08 +08:00
PHP + Laravel
leisurelylicht
2018-01-08 19:17:44 +08:00
Python,个人感觉在安全性上会比 PHP 好一点。

与语言无关,与人有关

1. 研究 PHP 漏洞的人比较多,Python 较少。

2. PHP 在 Web 开发上比 Python 自由度高一点,所以程序员出错的机会也多一点

个人观点,欢迎讨论
haozibi
2018-01-08 19:20:53 +08:00
php
bobuick
2018-01-08 19:21:17 +08:00
java spring,找个脚手架。基本上 CRUD 类的操作,都是根据 db 表生成出来的代码,业务逻辑写一点就可以了。前端工作量都差不多,根用哪个后端语言差别不大
loginv2
2018-01-08 19:25:25 +08:00
yii 用 gii 直接生成代码,在这个基础上改,既然是内网的项目,做好权限控制,访问双向认证,避免无必要的外部接触就可以。语言什么的其实都差不多,关键还是安全意识
Kilerd
2018-01-08 19:27:05 +08:00
postgresql + python 自动生成 CURL 的框架。美滋滋
linuxchild
2018-01-08 19:28:06 +08:00
Django 呀~
loading
2018-01-08 19:29:25 +08:00
然后这个软件跑在 windows 2000
shijingshijing
2018-01-08 19:29:47 +08:00
@bobuick
@leisurelylicht
@wujunze
@haozibi

谢谢各位,Java 应该是不会考虑的,一是他们没人会 Java,不懂就不好评论;第二个是他们可能后续还会自己做二次开发,他们主要是一群写 C 的,然后有几个会 Python,那些个写 C 的对 PHP 具有天生的亲近感,Python 他们也用来写测试脚本,也还行。业务 CRUD 这一块,可能会拉他们的人来帮忙减轻点工作量。

多用户登录是不是直接用 OAuth 就够了?还需要其他注意的地方么?

最后,希望大佬们解答的时候不要只说语言和框架,多讲讲能够说服人的论点,最好有案例什么的。
shijingshijing
2018-01-08 19:31:50 +08:00
@loginv2 会挂到网上的,试运营的时候估计是买个 vps 然后部署上去,然后让几个国外的仓库登录了试试。
shijingshijing
2018-01-08 19:33:36 +08:00
@loading

倒不会跑在 windows 2000 上,不过按照他们的做法,应该是这次改版了就用这个版本用到死的。。。
SlipStupig
2018-01-08 19:34:31 +08:00
@leisurelylicht python 和 php 一样是动态语言,该有的漏洞一个都不少,自由度来说 python 一点也不低

如果考虑安全性还有开发效率兼顾的话,推荐用 golang,理由如下:
1.golang 是强类型语言,对于一些低级逻辑漏洞可以进行简单过滤
2.有相对成熟的框架,比如:beego 等,开发难度不高,性能强劲,而且本身框架有一定的安全措施
3.上线时间短,编译速度&部署生产环境容易

BTW:及时你使用了 golang 依然也不能保证安全问题,因为安全是一个防护体系而不是一门语言能解决的
defunct9
2018-01-08 19:34:47 +08:00
rails、django、meteor,前端 nginx,后面 mysql
kikyous
2018-01-08 19:35:17 +08:00
rails
defunct9
2018-01-08 19:36:25 +08:00
安全是个体系,建议用 pci 的安全标准来要求就可以了
carlclone
2018-01-08 19:37:47 +08:00
@leisurelylicht 你的逻辑挺奇怪的,研究的人多所以漏洞多,笑出声
WuwuGin
2018-01-08 19:38:27 +08:00
安全问题基本上都是自己的问题,所以一个好的框架可以帮你规避很多风险,拿 PHP 的 yii2 来说,防跨站攻击,SQL 注入都做得很好了,只要你按照他的安全规范来开发。这就是框架的好处。
jtsai
2018-01-08 19:40:32 +08:00
egg.js
carlclone
2018-01-08 19:42:44 +08:00
@leisurelylicht 看错了哈哈,抱歉糗大了
timothyye
2018-01-08 19:45:00 +08:00
django

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/421140

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX