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

14575 次点击
所在节点    程序员
116 条回复
lifeintools
2018-01-08 20:25:40 +08:00
Ci
GreatMartial
2018-01-08 20:28:27 +08:00
大佬,你只写 Web 应用吗?
如果需要下层硬件的接入方案,可以找我😄
Torpedo
2018-01-08 21:05:20 +08:00
这不是看自己熟练使用哪个么。。。
mx1700
2018-01-08 21:17:45 +08:00
php laravel
zn
2018-01-08 21:22:08 +08:00
难道不是最好的语言 PHP ?
Laraval、Symfony 都可以试试。
MonoLogueChi
2018-01-08 21:23:12 +08:00
要安全的话就应该用你们最熟练的,用一个不熟悉的语言开发出来的东西,漏洞肯定比你们熟悉的多。个人感觉 php 不如 jsp 安全,只是个人感觉。
cevincheung
2018-01-08 21:27:16 +08:00
数据库 pgsql,pgsql,pgsql 说三遍
数据库独服,独服,独服说三遍
php&python 任选。只要不是语言自身底层的 bug 通常来说没问题的。所谓泄露大都是逻辑漏洞而非程序级漏洞。

php 推荐 Yii Or Laravel。Laravel 使用一段时间对开发人员并不是特别友好。其 Event、Queue 灵活性不高整个 queue 是直接扔的序列化对象。不能和 celery 等类似的进行友好整合。
如果不怕学习成本的话,严重推荐 Symfony !!
Simcyber
2018-01-08 21:31:29 +08:00
php 是世界上最好语言
cobola
2018-01-08 21:37:48 +08:00
python 就很好!
ioriwong
2018-01-08 21:43:25 +08:00
纯讲安全性,觉得.NET 更高,但被你排除了
Nitromethane
2018-01-08 21:57:17 +08:00
难道不是团队对什么有积淀什么,什么就最快么?
gemini
2018-01-08 22:02:46 +08:00
按照团队的背景来吧,其实你们已经选好了 python
jyf
2018-01-08 22:04:17 +08:00
虽然我喜欢 python 但是既然你提到了快 建议考虑 node.js
helloworld12
2018-01-08 22:04:57 +08:00
django
robertlyc
2018-01-08 22:46:02 +08:00
ruby/rails
leisurelylicht
2018-01-08 23:07:13 +08:00
@carlclone
@SlipStupig
@shijingshijing

是,语言其实是相似的,但是研究一门语言漏洞的人越多,发现的漏洞就越多,传播的也就越广泛。

拿我自己来说,我也是个脚本小子,第一份工作就是专门做 web 漏洞扫描的。

我遇到的 php 网站漏洞和讲 php 网站漏洞的文章,工具都远多于 python,

我手里的 php 漏洞利用脚本也远多于 python。

也因此我对我拿到一个 php 的网站不管怎么样我都有一堆工具可以先试一试,而 python 不是不行,但是相对来说工具和思路都会少很多。

市面上讲渗透的书基本都是以 php 或者 java 做靶机的。python 很少,为什么,因为会渗透 python 的人少。

所以我说与语言无关,与人有关。语言都是图灵相等,谁能比谁差到哪去呢。

python 毕竟在 web 领域火起来的时间没有 php 久,相关的安全研究积累,没有那么多。

我说 python 自由度低是因为 python 做网站多半是 python + django,很多东西框架就给你搞好了。

当然可以不用,但是那样就很麻烦了,真要只用 python 从头写个网站,说实话我是搞不来的。

而 php 一不高兴什么框架都可以不用,只有 php,其他全部从零,orm 什么的都能省,比不用框架还简单。这样给人的发挥空间就过大了。

尤其还有一群写 C 的队友,玩 C 的人最爱自己造轮子,但造出来基本都是坑。
ebony0319
2018-01-08 23:13:56 +08:00
数据库应该是 sqlServer 吧,应该很多事物逻辑在存储过程里面。小心地雷。
micean
2018-01-09 00:11:33 +08:00
我觉得你心里应该有答案了,就是 php
安全跟语言没啥关系,漏洞多是框架上的吧
shijingshijing
2018-01-09 00:15:54 +08:00
谢谢楼上的大佬们,首先估计比较重的几个框架会被排除,ROR 他们都不会,Laravel 个人感觉无异于是重新发明了一门语言,多少都需要一点学习成本的,我自己估计也要看几天才能上手,说不定有什么坑也不知道。

其次非常感谢 @defunct9 @WuwuGin @leisurelylicht 三位大佬帮我重新定义了安全,这是一个体系而不是做到一两条比如防注入防跨站就能解决的,要注意的地方很多,我可能把这一块看得简单了一点。

最后感谢 @ebony0319 和 @cevincheung 两位大佬提醒数据库方面的坑,他们没有特别的存储过程,这个确实当时有很多人喜欢把业务逻辑做到数据库里用存储过程实现,不过他这个应该是太简单了以至于忘记了挖这个坑。数据库还是用 MySQL 吧,基本上我搞过的几个项目都是 MySQL,对这块熟悉一点,而且配合 PHPMyAdmin 维护起来也简单一点。

我估计最后还是无脑选 Django,开箱即用,python 入门也简单,就不知道里面的各个内置模块有没有什么特别的坑了。再次感谢各位大佬的热情回复和支持。
sfree2005
2018-01-09 03:00:55 +08:00
用了流行的框架,语言本身造成的安全问题只是相对来说应该是小部分,我觉得更多的是服务器上的各种安全防范配置,防火墙规则,访问限制,备份安全,运维之类,还有各种技术管理的流程规范,例如什么人可以知道服务器各种密码,此人离职的话,公司应该做什么。

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

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

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

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

© 2021 V2EX