如果重构一个 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 大佬能畅所欲言。如果后续有办法接过来,可能也会请大佬们来一起分包。

14628 次点击
所在节点    程序员
116 条回复
hw798
2018-01-09 10:50:32 +08:00
当然是什么熟悉来什么?只要是新东西都要有一段学习和试水过程,耽误时间
速度是:目前看来真的是 PHP + Laravel 最快,楼主学过 CodeIgniter 框架,学 laravel 应该很迅速
安全保密性:接口做些非对称加密、时效验证、服务器的权限等等一般即可


参考
laravel 手册 d.laravel-china.org
其他 www.hw798.com
silov
2018-01-09 10:51:30 +08:00
同意一楼,Laravel,再用个 Voyager 什么的管理后台的页面框架,那开发效率简直了
lbp0200
2018-01-09 10:53:01 +08:00
bindiry
2018-01-09 10:53:34 +08:00
obviously rails
102400
2018-01-09 10:55:52 +08:00
golang gin
husky
2018-01-09 11:00:45 +08:00
@leisurelylicht #36
反过来说,被人研究的多->漏洞众所周知->安全开发更规范,难道不是良性的吗
python 被研究的少就认为相对 php 更安全,这种逻辑怕不是掩耳盗铃
安全不是说用什么语言就会更安全的
jhdxr
2018-01-09 11:03:21 +08:00
@leisurelylicht 你这逻辑依然非常奇怪,研究的人多工具多必然能够推导出更不安全吗?退一步在你说的前提下,那也只是广撒网的时候,写的差的 PHP 网站相较于写的差的 Python 网站更容易被发现漏洞。但像这种系统从来要防御的都不只是简单的广撒网好吗?
另外就是研究的人少,所以手里握两个 0day 岂不就美滋滋指哪打哪,而且我也不用担心这个被其他研究的人曝出来。


@shijingshijing 连 laravel 都看不懂你还是别用 PHP 了,symfony 对你来说估计遥不可及了。说的难听点,laravel 只是某一些思想 /设计的 php 实现版本而已,在现在应该算是一个入门级的标准了。你可以不用甚至讨厌,但是和完全不懂是不同的。就像现在前端的入门标准也远远不是 jQuery 这么简单了。
ioth
2018-01-09 11:04:36 +08:00
对“安全”的要求确认清楚再说
jhdxr
2018-01-09 11:04:46 +08:00
安全上再多吐槽一句,还在考虑语言 /框架,觉得会对安全有很大影响,你以为都是 struts2 么。那种拉几个新手过来帮忙的想法比你选什么框架危险的多→_→
tailf
2018-01-09 11:06:18 +08:00
感觉楼上大多是在瞎推荐,我来仔细给楼主分析一下:

--

1. 技术方案选择

没什么说的,熟悉哪个用哪个。至于安全性,用户越多越活跃的安全性越高。

2. 数据库选择

首推 MySQL,最成熟。楼上说 PG 的应该是尝过甜头的,这货跟 MySQL 比有一定优势(主要是因为简单),但是看你是否熟悉了,自己运维的话还是有一些小坑的。还好没人说 MongoDB,这货不是一般的坑。

3. 运维便利性

首推 Apache + mod_php + MySQL,无敌。
jlkm2010
2018-01-09 11:10:10 +08:00
你要考虑安全性,建议别上 php 了,python 也慎重考虑,非常建议 java
DoctorCat
2018-01-09 11:22:02 +08:00
说句不中听的,得看开发人员水平。当今主流编程语言都有对应的成熟的 Web 框架,安全性框架已经做了很多处理了,所以一般情况下不需要过度担忧。要说开发快,两三个个 Java 高手可能很快搞定整站了,但是遇到 low 货,哪怕用 PHP 开发效率也慢。
pynix
2018-01-09 11:26:28 +08:00
要快肯定得用脚手架。。。。。比如 ror
GooMS
2018-01-09 11:53:28 +08:00
Php 上手最快了吧, laravel 又能保证不会写的太烂安全太差,然后就用 MySQL。这个经典结构经过了多少考验,环境要求低,部署简单,人也很好招。
GooMS
2018-01-09 11:55:33 +08:00
至于安全,我觉得和语言没有关系。
Building
2018-01-09 11:55:47 +08:00
当然是用自己最熟悉的语言和框架。
xpresslink
2018-01-09 12:02:59 +08:00
你想累死楼主么?个人用 java 开发非常不值得。
只有大项目多人协作时候,java 可以考虑,由架构师搭好框架封装好底层,多人共享。
因为前期会有很多需求变更的,用动态语言有很大优势。
这种项目关键是快,最重要的就是快速撸出来个原型来。再慢慢细化。
gouchaoer
2018-01-09 12:11:48 +08:00
如果是对内后台管理系统的话,那种基于 bootstrap 的后台 php 有很多脚手架,python 不太清楚
如果是框架选择的话,我推荐 yii2,不推荐 laravel
至于安全因为你是要说服他们团队来做,除了业务上不能有漏洞之外,还需要釜底抽薪的办法:
第一:敏感信息的表,比如报价、用户账户信息不能在你的后台管理系统里面拿到,而需要通过内部 rpc/http 调用去另一个系统调用(这个系统对调用频率啥的进行监控),这样就算你的后台系统被拿下了,也可以阻挡敏感信息泄漏
第二:系统之间需要独立,可以使用 docker 之类的,不能说我拿到了你的这个系统的 webshell,就可以拿下你这台主机下的别的 mysql 啊别的系统之类的
lianxiaoyi
2018-01-09 12:24:08 +08:00
该有的漏洞都会有,CPU 都有漏洞,linux 各种漏洞。。。。。所以绝对安全是不可能的。。。php 也没有你们想的那么不安全。
lolizeppelin
2018-01-09 12:37:47 +08:00
明显就是老板拍脑袋说我们数据一定要安全
又没给出维护安全的价位

楼上的也一起瞎鸡巴给意见 上面连架构都帮想了


实际情况估计就是领导觉得公司有码农 可以自己做一套
99 %是坑 你们提的意见没用
他们的 c 还对 php 有亲切感就可以看出他们对 PHP 的接触有多少了

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

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

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

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

© 2021 V2EX