跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 为什么后端要写 form,前端直接写好 form 再传不是很方便么
未分類
16 9 月 2020

为什么后端要写 form,前端直接写好 form 再传不是很方便么

为什么后端要写 form,前端直接写好 form 再传不是很方便么

資深大佬 : Achilless 8

目前了解的 flask,django 都有后端表单功能,不是很理解存在的意义

大佬有話說 (23)

  • 資深大佬 : xiaolinjia

    不写 form,怎么接收前端表单传的数据?
    如果你说的是后端来定义 form 的样式,这个是之前历史需要,现在基本不用。

  • 主 資深大佬 : Achilless

    @xiaolinjia 接收 request 对象不可以么

  • 資深大佬 : xiaolinjia

    @Achilless flask 我用的少就先不论。dj 的话,form 类主要有两个功能,1 是验证数据,2 是前端生成表单(这个上面已经说了是历史产物了,现在基本不用)。
    那说回 1,接收数据,直接从 request.POST 或者 request.body 里接收确实可以,但是还要另外写验证,就很麻烦。如果用 form 类的话,首先在 model 里能定义一些字段约束,并且 form 类里还能定义 clean_xx 方法来验证。这些验证,只需要调用 form.is_valid()。然后 form.cleaned_data,就可以获取到验证通过的数据,因为框架帮你写好了。
    而如果你直接取,那就是 a = request.POST.get(‘a’),if 验证(a): xxxxx 。b = request.POST.get(‘b’),if 验证(b): xxxxx 。这样写不麻烦吗?

  • 主 資深大佬 : Achilless

    @xiaolinjia 我验证 form 都是在前端写好再传的。。觉得比写 form.py 轻松许多,所以怀疑后端设计 form 的意义

  • 資深大佬 : Haujilo

    主的意思是既然前端的定义数据格式,不理解为啥后端还要再定义一次?后端开发要默认前端传输的数据都是不可信的,必须自定义好格式并验证。

  • 資深大佬 : leopod1995

    做后端就要有 前端所有数据都不可信 的心态

  • 資深大佬 : zacharyjia

    @Achilless 不要相信前端传来的数据,所有验证一定要在后端做好。前端的验证只是为了提高用户体验的。

  • 資深大佬 : lasuar

    遇到不理解的设计先提问 是个好习惯

  • 資深大佬 : lovecy

    前端验证是提高用户体验,减少无效请求的
    后端验证是防错防攻击

  • 資深大佬 : lovecy

    前端代码是公开的,所有请求都是可以伪造的,不可信任前端传来的数据

  • 資深大佬 : xiaolinjia

    @Achilless 你前端 js 验证的话,某种程度上是可以防止那些操作浏览器的正经用户乱输。那我直接 postman 请求接口,不是把你前端绕过了,那我后端还要不要验证啊。
    或者说,我直接 request 库向 api 接口发请求 post 数据,有经过你的前端表单?

  • 資深大佬 : sixway

    一般来说前端的 From 是可以像你说的。不过前端的数据毕竟不可信,验证也只是防君子。想做坏事的成本可太低了。

  • 資深大佬 : L00kback

    你前端搞好了,传给后端的时候黑客把数据包一截,爱怎么改怎么改。
    功能是没问题的,安全性太低了。

  • 資深大佬 : lychs1998

    @Achilless 只做前端验证是不够的。

    1.像上面说的那样完全可以用 postman 等工具直接请求你的接口,往接口里写入一堆对业务会造成极大干扰的数据。
    2.前端的代码是可以被修改的(比如网页,我去掉前端的验证表单的 js 代码,直接请求就可以了)
    3.网络传输的不可靠,如果采用明文传输,在中间过程中可以被修改。

  • 資深大佬 : gollwang

    前段验证在程序员眼中==没有

  • 資深大佬 : kalluwa

    面向黑客编程?

  • 資深大佬 : oneend

    前端的数据一定要像 女人的嘴骗人的鬼 那样对待

  • 資深大佬 : wuwukai007

    django-drf,表单验证默秒全

  • 資深大佬 : saulshao

    出于安全考虑,后端应该把所有接收的输入再验证一遍。并且有一些数据的有效性是只有后端才知道的。

  • 資深大佬 : muuubooo

    我的经验理解是前端验证是软验证,更多的是防止用户无恶意的错误填写,和规范数据格式。
    就像某扇门上贴着非请勿入的一纸告示,但门本身没上锁。

  • 資深大佬 : lslqtz

    前端验证可以降低不必要的服务器请求,同时提升用户体验
    后端验证可以防止前端写出 bug 导致没有进行验证,同时也可以防止恶意接口请求,并且可以进行一些增强验证(例如说注册这个功能,你前端是不知道账号存在不存在的,而后端做注册逻辑的时候肯定是要去数据库先查表的)

  • 資深大佬 : soulmt

    不要相信前端!!!不要相信前端!!!不要相信前端!!!前端给什么都不要相信!真的!!

  • 資深大佬 : OHyn

    所有验证,后端都需要进行。。前端防君子不防小人的。

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具