我又来水一帖的,关于服务端验权的问题

本贴最后更新于 2868 天前,其中的信息可能已经事过景迁

2016 年下半年我们公司开启了一个商城的项目。
其实我们每个人都想把整个项目做到最精细,但是我们公司的理念是现有房子,大小是另外一回事。
我们公司的项目是 JAVA 框架是 SSH,重点使用 struts2。
我是前端出身的,自然负责前端页面和与后端的对接。
一开始时间充裕,所以登录页面我画了 1 天时间,包括对帐号密码输入的验证和扫码登录的接口。
虽然时间长,但是基本完美。
但是随着项目的推进,我发现越来越不对劲,负责后端的同事每逢提交表单的时候都需要我对表单项进行验证。
在我真正感觉到蹊跷,是又一次我需要知道表单对应的 name 的时候,我打开了对应 action 的代码,结果发现。这个接口仅仅是一个存入的数据库的接口,而没有进行登录验证和对应的权限验证。
于是我有很调皮的点开了其他包括接口,发现果真如此。
也就是说,在我没有登录或者当前登录账户没有修改权限的情况下是可以使用相应的接口进行修改插入甚至删除的操作的。
难道仅仅需要前端验权而后端不需要么。
另外,我们的接口无论网页或者 app 都采用如同 https://hacpai.com/post?type=0 这样的接口进行表单提交,网页的表单提交没有做表单令牌,而在 app 上甚至参数是最简单的明文的 userid 作为参数提交。总感觉会出问题
虽然我是一个前端,在 php 上虽然不算过多精通,但是在我写过的 wechat 对接的项目中使用到了表单令牌,在我目前的项目中,与 webapp 对接都是用的是自己编写的加密 token,app 需要保存并使用 token 才可以换取所需要的数据甚至添加好友聊天等功能。这些都是我自己做的项目。
就像我回复的一篇帖子一样,在创业性公司,永远缺少大牛,大家也是身位平等,毕竟我是前端,我不可能也不必要甚至不方便跟后端商量或提出这样的事情。而且人家是我的主管,而我仅仅是一个没有任何实权的副经理。
写在接口的时候偶然想起这么糟心的一件事情,就来吐槽一下。
各位对前端与后端对接所发送的数据接口有什么建议,如何安全的提交表单,如何更加方便的验权,平时的经验,如果方便,麻烦教导下。

一个迷茫的前端

  • Java

    Java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由 Sun Microsystems 公司于 1995 年 5 月推出的。Java 技术具有卓越的通用性、高效性、平台移植性和安全性。

    3187 引用 • 8213 回帖
  • 负能量

    上帝为你关上了一扇门,然后就去睡觉了....努力不一定能成功,但不努力一定很轻松 (° ー °〃)

    88 引用 • 1235 回帖 • 411 关注
  • 职场

    找到自己的位置,萌新烦恼少。

    127 引用 • 1705 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • @88250 我们是有的吧。。。。

  • 居然是副经理,副经理怎么会有主管呢?

    看你们对应用的安全性了,没需求就不必太在意。

    1 回复
  • cykcyk123
    作者

    我们是做交易类的 商城这一块。我觉得是有吧。主管就是经理额。

    1 回复
  • 哇哈哈,上线了记得来宣传下哦。 😏

    1 回复
  • cykcyk123
    作者

    233333 已经上线了
    就是这样才糟心
    我们从开工到上线 2 个月 后期基本上是慢慢加功能

  • smart

    你这头像亮了...记得在哪见过,3g nba? 😅

    1 回复
  • cykcyk123
    作者

    哈哈 不知道也 只是看了以后有种心潮澎湃的感觉所以就用了

    1 回复
  • 88250

    能用就行,别想多了。关于安全问题,可以在适当的时机表达出来,让团队中的人都知道就行,大家如果默认,那就....就那样了

    2 回复
  • c2y2

    你这头像,严重干扰注意力啊

    1 回复
  • alanfans

    头像太闪了

  • cykcyk123
    作者

    好吧 既然这样就释然了

  • cykcyk123
    作者

    ** 既然这样就释然了**

  • cykcyk123
    作者

    回复错了 少年 要有自制力啊

  • yourShitCode

    这个接口仅仅是一个存入的数据库的接口,而没有进行登录验证和对应的权限验证。 我年后还想跳槽去创业公司试试水 你这说的 我好恐惧

    1 回复
  • Sakura

    @88250 楼主的头像是不是可以取消或者让你重新修改

    2 回复
  • 88250

    楼主,你自己看着办吧

  • eddy

    你这文章起码排下版呀,看起来挤在一坨了。

    1 回复
  • lijp

    像你说的两个月就上线的项目,我觉得在关键功能点前后端都验证一下就行了,毕竟是商城系统。另外就是洁癖对程序员来说是好事,可是根据我的经验,像你说的这种着急项目,先有个大概再说,能 run 起来,然后再完善细节。

    1 回复
  • cykcyk123
    作者

    →_→ 不算违规和敏感吧

  • cykcyk123
    作者

    反正我是有洁癖,不过后端的我目前无权插手也就只能在这里吐槽 ╮( ̄▽ ̄")╭

  • cykcyk123
    作者

    ╮( ̄▽ ̄")╭ 这个确实是我的问题,我写这篇的时候好激动所以就没注意排版了

  • cykcyk123
    作者

    ╮( ̄▽ ̄")╭ 其实就我呆了快 2 年的经验(85 周了),我建议要三思

    1 回复
  • tiangao

    太搞了
    培训出身的吗
    要不干脆外包出来吧,我给你们做,23333

    1 回复
  • yourShitCode

    阿西吧 . . .

  • cykcyk123
    作者

    ==是培训出身的我也认了
    大致有如下原因
    1、老板太心急上线了,
    2、后端嫌太麻烦了,
    3、不停加新功能导致我们没时间加上去

    1 回复
  • tiangao

    表单验证一点也不麻烦啊,而且这是后端的基本素养

    1 回复
  • cykcyk123
    作者

    吼吼 这个我也只能干瞪眼了

请输入回帖内容 ...

推荐标签 标签

  • V2EX

    V2EX 是创意工作者们的社区。这里目前汇聚了超过 400,000 名主要来自互联网行业、游戏行业和媒体行业的创意工作者。V2EX 希望能够成为创意工作者们的生活和事业的一部分。

    17 引用 • 236 回帖 • 328 关注
  • wolai

    我来 wolai:不仅仅是未来的云端笔记!

    2 引用 • 14 回帖
  • 设计模式

    设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。

    200 引用 • 120 回帖 • 1 关注
  • Android

    Android 是一种以 Linux 为基础的开放源码操作系统,主要使用于便携设备。2005 年由 Google 收购注资,并拉拢多家制造商组成开放手机联盟开发改良,逐渐扩展到到平板电脑及其他领域上。

    334 引用 • 323 回帖 • 2 关注
  • jsDelivr

    jsDelivr 是一个开源的 CDN 服务,可为 npm 包、GitHub 仓库提供免费、快速并且可靠的全球 CDN 加速服务。

    5 引用 • 31 回帖 • 59 关注
  • 开源

    Open Source, Open Mind, Open Sight, Open Future!

    408 引用 • 3575 回帖 • 1 关注
  • Mac

    Mac 是苹果公司自 1984 年起以“Macintosh”开始开发的个人消费型计算机,如:iMac、Mac mini、Macbook Air、Macbook Pro、Macbook、Mac Pro 等计算机。

    166 引用 • 595 回帖 • 1 关注
  • Git

    Git 是 Linux Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

    209 引用 • 358 回帖
  • Netty

    Netty 是一个基于 NIO 的客户端-服务器编程框架,使用 Netty 可以让你快速、简单地开发出一个可维护、高性能的网络应用,例如实现了某种协议的客户、服务端应用。

    49 引用 • 33 回帖 • 22 关注
  • 大疆创新

    深圳市大疆创新科技有限公司(DJI-Innovations,简称 DJI),成立于 2006 年,是全球领先的无人飞行器控制系统及无人机解决方案的研发和生产商,客户遍布全球 100 多个国家。通过持续的创新,大疆致力于为无人机工业、行业用户以及专业航拍应用提供性能最强、体验最佳的革命性智能飞控产品和解决方案。

    2 引用 • 14 回帖
  • IBM

    IBM(国际商业机器公司)或万国商业机器公司,简称 IBM(International Business Machines Corporation),总公司在纽约州阿蒙克市。1911 年托马斯·沃森创立于美国,是全球最大的信息技术和业务解决方案公司,拥有全球雇员 30 多万人,业务遍及 160 多个国家和地区。

    17 引用 • 53 回帖 • 136 关注
  • Facebook

    Facebook 是一个联系朋友的社交工具。大家可以通过它和朋友、同事、同学以及周围的人保持互动交流,分享无限上传的图片,发布链接和视频,更可以增进对朋友的了解。

    4 引用 • 15 回帖 • 453 关注
  • 安全

    安全永远都不是一个小问题。

    199 引用 • 816 回帖
  • 前端

    前端技术一般分为前端设计和前端开发,前端设计可以理解为网站的视觉设计,前端开发则是网站的前台代码实现,包括 HTML、CSS 以及 JavaScript 等。

    247 引用 • 1348 回帖 • 2 关注
  • H2

    H2 是一个开源的嵌入式数据库引擎,采用 Java 语言编写,不受平台的限制,同时 H2 提供了一个十分方便的 web 控制台用于操作和管理数据库内容。H2 还提供兼容模式,可以兼容一些主流的数据库,因此采用 H2 作为开发期的数据库非常方便。

    11 引用 • 54 回帖 • 653 关注
  • 爬虫

    网络爬虫(Spider、Crawler),是一种按照一定的规则,自动地抓取万维网信息的程序。

    106 引用 • 275 回帖 • 2 关注
  • RESTful

    一种软件架构设计风格而不是标准,提供了一组设计原则和约束条件,主要用于客户端和服务器交互类的软件。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。

    30 引用 • 114 回帖 • 1 关注
  • 区块链

    区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。所谓共识机制是区块链系统中实现不同节点之间建立信任、获取权益的数学算法 。

    91 引用 • 751 回帖 • 4 关注
  • flomo

    flomo 是新一代 「卡片笔记」 ,专注在碎片化时代,促进你的记录,帮你积累更多知识资产。

    5 引用 • 107 回帖
  • Log4j

    Log4j 是 Apache 开源的一款使用广泛的 Java 日志组件。

    20 引用 • 18 回帖 • 29 关注
  • 外包

    有空闲时间是接外包好呢还是学习好呢?

    26 引用 • 232 回帖 • 4 关注
  • 微服务

    微服务架构是一种架构模式,它提倡将单一应用划分成一组小的服务。服务之间互相协调,互相配合,为用户提供最终价值。每个服务运行在独立的进程中。服务于服务之间才用轻量级的通信机制互相沟通。每个服务都围绕着具体业务构建,能够被独立的部署。

    96 引用 • 155 回帖 • 2 关注
  • SEO

    发布对别人有帮助的原创内容是最好的 SEO 方式。

    35 引用 • 200 回帖 • 23 关注
  • Rust

    Rust 是一门赋予每个人构建可靠且高效软件能力的语言。Rust 由 Mozilla 开发,最早发布于 2014 年 9 月。

    58 引用 • 22 回帖
  • jsoup

    jsoup 是一款 Java 的 HTML 解析器,可直接解析某个 URL 地址、HTML 文本内容。它提供了一套非常省力的 API,可通过 DOM,CSS 以及类似于 jQuery 的操作方法来取出和操作数据。

    6 引用 • 1 回帖 • 476 关注
  • SpaceVim

    SpaceVim 是一个社区驱动的模块化 vim/neovim 配置集合,以模块的方式组织管理插件以
    及相关配置,为不同的语言开发量身定制了相关的开发模块,该模块提供代码自动补全,
    语法检查、格式化、调试、REPL 等特性。用户仅需载入相关语言的模块即可得到一个开箱
    即用的 Vim-IDE。

    3 引用 • 31 回帖 • 101 关注
  • 30Seconds

    📙 前端知识精选集,包含 HTML、CSS、JavaScript、React、Node、安全等方面,每天仅需 30 秒。

    • 精选常见面试题,帮助您准备下一次面试
    • 精选常见交互,帮助您拥有简洁酷炫的站点
    • 精选有用的 React 片段,帮助你获取最佳实践
    • 精选常见代码集,帮助您提高打码效率
    • 整理前端界的最新资讯,邀您一同探索新世界
    488 引用 • 384 回帖 • 9 关注