首先说明,功能会做,原有代码页能轻松看明白。
但是现在就是不想写了。
项目整个有4个网站android客户端和Ios客户端。
整个网站的数据交互式通过一个借口实现的,也就是网站的项目不直接读写数据库,而是通过一个项目统一读取数据库。
本来这种设计很好,至少能在数据库的交互上,做到了统一的读取。避免了很多重复性的工作。
总体设计是好的,但是一个好的设计就能解决所有的问题,细节上的问题必然是会出现的。
比如图片上传的问题。
APP端是直接访问接口的,而web端是先通过访问本身的项目,再通过项目来访问接口
APP端上传的图片只能直接到接口,而网页端上传的图片,只能到web这边
这个图片路径的问题,本来是需要及时解决的。
两种方案,一种是在数据库中,写上绝对地址,这样不管图片上传到哪里,最后都能找这张图片。
另一种是将图片统一放在一个第三方路径去,这样不管是通过使用一个新的域名指向这个路径还是直接通过相对路径或者其它方法指定过去,都不会有很大的问题。
结果商量到最后,主管的决定是为了通过人工拷贝,及时将不同地方的图片进行同步。
还有一个这样设计的致命问题,那就是数据库安全的问题。
在与接口的交互过程中,因为接口端是获取不到用户的session或者cookie的,在APP端也不可能实现。所以每次请求相关数据都是通过用户的id来识别用户身份,一个id不是随随便便能伪造的吗?只要熟悉接口传递数据的值,就相当于直接操控数据库了。可以说是给了黑客一个不要用户名和密码的phpMyadmin。
这种问题解决也不是很难,在用户登陆时设定一个token存在数据库中,每次用户登陆都自动更换一个token,并在用户登陆的时候发送给客户端。在web端,可以直接把token中记录在session,每次提交的时候,将token也提交上去。APP的话,也将这个数据记录下来,每次提交数据的时候,要提交这个数据就可以了。
这样绝对是避免了90%网站收到攻击的概率,低成本并且有效。
前两天,要做一个新的功能。
本来应该是大家开一个会,最先解决的问题是数据库设计的问题。
结果等来等去,数据库还没有设计。先给我个命令,让我完成一个后期要实现的功能。
小弟刚刚入职,而且多次向上面提出自己对项目的想法和思路,上面都没有同意,现在已经不敢再提自己的意见了。感觉自己的积极性也受到了打击。
想到公司网站在设计的时候根本没有考虑过统一的问题,4个网站登录界面和实现方法就写了4次。而且漏洞累累,上次不是看着自己主要负责的网站,出现了这么到问题,心里过不去,自己偷偷的改了整个逻辑。等做完后自己偷偷的就更新上去,等以后出了问题,再改,就出问题了。
为了改变这样的状况,我开始为公司写一个内部交流网站。
虽然类似于贴吧或者论坛,但是因为结合本公司的开发流程。
最关键是起到一种记录文档的作用,这点是我最郁闷的,在开发过程中,我们没有任何的开发文档。因为现有的网站中,已经有一个老的比较成型的网站。所以要实现什么功能的时候,先借鉴老网站功能实现的过程,并且结合个人经验实现新的功能。
现在所谓的需求,就是主管口中一说,你记录下来,自己凭经验做。
这个内部交流网站主要是起解决这些问题的功能。在开发过程中,也添加一些办公实际的功能,这样才是软件公司呀。
这几天基本是混过来的