设为首页收藏本站

爱吱声

 找回密码
 注册
搜索
楼主: 老兵帅客
打印 上一主题 下一主题

[信息技术] Best Practice

  [复制链接]
  • TA的每日心情

    2019-3-13 15:27
  • 签到天数: 106 天

    [LV.6]出窍

    21#
    发表于 2011-9-28 17:33:20 | 只看该作者
    老兵提到的问题,是不是有一个前提:各层校验的对象是一致的?既从逻辑上来说,数据在各层次间流动时,不发生改变。
    3 _; o- I" K6 z# U( L" }* g
    # q( r  {$ `5 Y8 w3 ~8 v( q如果是这样的话,倒确实不用每层都校验。而应把关注点放在数据传递安全上,也就是防篡改。3 M$ q: ?: g9 d
    & z; S* o$ ]5 d! s! P
    如果数据流动过程中会变动,那我同意空气精灵的观点。
  • TA的每日心情
    慵懒
    3 天前
  • 签到天数: 1568 天

    [LV.Master]无

    22#
    发表于 2011-9-28 17:41:53 | 只看该作者
    老兵帅客 发表于 2011-9-28 17:13
    0 v7 q% C. V9 [' b$ Iesb那个全是自己搞的,而且预先知道就放在自己的内部机器上。
    3 I: R; B1 N9 T) ^
    理解不能,除非ssl这类都是缺省实现,懒得去掉,否则多个ssl多讨厌。
  • TA的每日心情
    开心
    2023-1-5 00:48
  • 签到天数: 2591 天

    [LV.Master]无

    23#
     楼主| 发表于 2011-9-28 19:01:31 | 只看该作者
    胖子 发表于 2011-9-28 04:33 - k) k) i/ X4 x
    老兵提到的问题,是不是有一个前提:各层校验的对象是一致的?既从逻辑上来说,数据在各层次间流动时,不发 ...
    + A3 O' h! V+ h
    各层的校验数据是一样的,就是从表示层那里得到的同一个java bean,内容不变。同时因为这是个在同一个java ee server下面运行的web app,不存在数据在中间遭到篡改的可能。
  • TA的每日心情
    开心
    2023-1-5 00:48
  • 签到天数: 2591 天

    [LV.Master]无

    24#
     楼主| 发表于 2011-9-28 19:02:55 | 只看该作者
    四处张望 发表于 2011-9-28 04:41
    ) L4 X% F' o+ Y. \& n% S' k! s理解不能,除非ssl这类都是缺省实现,懒得去掉,否则多个ssl多讨厌。
    + d6 X* ^* \' t8 e
    不是的,ssl设置都是要单独做的,而且还是双向ssl,也就是双方互相验证再建立ssl。
  • TA的每日心情
    慵懒
    3 天前
  • 签到天数: 1568 天

    [LV.Master]无

    25#
    发表于 2011-9-29 09:52:11 | 只看该作者
    老兵帅客 发表于 2011-9-28 19:02
    ' B/ y+ r; H0 b( I- q" ^4 O  m" d不是的,ssl设置都是要单独做的,而且还是双向ssl,也就是双方互相验证再建立ssl。 ...

    * r7 D7 ^% B7 D! M6 N0 K( Y" g2 W这个不就是等于保险箱里面再加吧锁吗,追求小数点后面的几个0呢?
  • TA的每日心情
    开心
    2023-1-5 00:48
  • 签到天数: 2591 天

    [LV.Master]无

    26#
     楼主| 发表于 2011-9-29 09:59:19 | 只看该作者
    四处张望 发表于 2011-9-28 20:52 4 w  v6 d+ |  {4 A
    这个不就是等于保险箱里面再加吧锁吗,追求小数点后面的几个0呢?
    / \2 ^- O4 f3 Z, `! _. u
    没办法,安全这个领域太敏感了,多些安全总比少些强
  • TA的每日心情
    慵懒
    3 天前
  • 签到天数: 1568 天

    [LV.Master]无

    27#
    发表于 2011-9-29 10:14:44 | 只看该作者
    老兵帅客 发表于 2011-9-29 09:59
    " ^  A  D( o) j& O' S. @没办法,安全这个领域太敏感了,多些安全总比少些强
    ( T5 ?4 e. p) N% L4 |( O
    不过计算性能开始不值钱了,多点安全拖累性能无所谓,不要多人工就好。
  • TA的每日心情

    2021-2-5 00:48
  • 签到天数: 1421 天

    [LV.10]大乘

    28#
    发表于 2011-9-30 08:47:42 | 只看该作者
    专业词汇一个不懂,但是意思大概明白了。
    5 r5 `+ k" z4 g- b) n8 r2 n. P( }$ Z; b! u9 y
    就是帅克同志认为在1-2-3递进的情况下,2和3不会发生超出1的BUG。所以只要1做得完善,检测1就足够了,用同样的方法检测2和3是一种浪费。不能为了检测而人为改变1的设置,因为1-2-3是递进的关系。
    0 f& B+ Y: T( _* f$ Y0 c2 ~/ r
    - }; v: {( b; z; c5 y: D* e6 F6 e简单说就是不能为了检测而检测。
  • TA的每日心情
    开心
    2023-1-5 00:48
  • 签到天数: 2591 天

    [LV.Master]无

    29#
     楼主| 发表于 2011-9-30 09:16:32 | 只看该作者
    猫元帅 发表于 2011-9-29 19:47
    6 b/ H. O/ C- w专业词汇一个不懂,但是意思大概明白了。, y/ w; T$ N( h1 D

    % G% `5 P3 @$ w9 H就是帅克同志认为在1-2-3递进的情况下,2和3不会发生超出1的BU ...

    # U  K; u: Q( e4 ~对,不应该做多余的事情

    该用户从未签到

    30#
    发表于 2011-9-30 21:46:38 | 只看该作者
    小绿爷 发表于 2011-9-27 22:17 ( r6 N- z  a3 b3 W/ x
    隔行如隔山,对我而言基本看不懂

    " a  z) n& k. W/ [8 @8 |就好比一座办公楼,大门口一把门的,电梯一守卫,你办公室门口又是一位,连厕所那儿也摆一位,进出都查ID。理由是有人能钻窗户进来。

    点评

    这个比喻很贴切,赞一个  发表于 2011-9-30 22:15
  • TA的每日心情
    开心
    2023-1-5 00:48
  • 签到天数: 2591 天

    [LV.Master]无

    31#
     楼主| 发表于 2011-9-30 22:40:35 | 只看该作者
    ImaNut 发表于 2011-9-30 08:46
    0 e6 {6 K& Z, X  ^就好比一座办公楼,大门口一把门的,电梯一守卫,你办公室门口又是一位,连厕所那儿也摆一位,进出都查ID ...
    ! @$ c' Z/ b5 A" S
    问题是这大楼根本没窗户也要这么干,那就是多此一举了。

    该用户从未签到

    32#
    发表于 2011-10-1 17:01:02 | 只看该作者
    作为一个前C++程序员表示理解起来压力不大。
    6 W, @, G! M# x# g3 q  `现在的软件工程为了提高代码的重用性和可靠性,要求各个代码模块对所有的输入都进行合法性检查以保证业务逻辑的正确运行,所以CPU内存增长的再快,也不扛不住做总是在做无用功的软件啊。
  • TA的每日心情
    开心
    2023-1-5 00:48
  • 签到天数: 2591 天

    [LV.Master]无

    33#
     楼主| 发表于 2011-10-1 20:29:13 | 只看该作者
    牌牌 发表于 2011-10-1 04:01
    % p2 Q5 \& a  p作为一个前C++程序员表示理解起来压力不大。9 ?# E; l. ]- I+ \; G
    现在的软件工程为了提高代码的重用性和可靠性,要求各个代码模 ...

    # y1 l) x* M4 F0 X的确如此。
  • TA的每日心情
    开心
    2024-12-3 23:17
  • 签到天数: 1178 天

    [LV.10]大乘

    34#
    发表于 2011-10-1 21:10:21 | 只看该作者
    怎么软件也像协议分层吗?

    该用户从未签到

    35#
    发表于 2011-10-1 23:55:49 | 只看该作者
    看你怎么看这个问题了。现代的软件工程都是多人甚至多团队合作型,万一其中的一个模块外包到印度去,那边的开发人员乱写一气,污染了数据,然后下一级别的模块没有做数据效验怎么办?现实世界中总是有各种意外的。当时觉得没必要的事情,过几年之后可能会觉得是重要的。
    - g7 B( z8 S# \& ~! N- s) x8 v' o0 x+ F9 q! z
    从架构设计的角度来说,这样做对于扩展性很有好处。比如,现在你只用一台机器跑所有的web service.可是明天用户忽然增多,一台机器撑不住了,必须多台机器集群作战。这时这样做的好处就出来了,软件层面基本上不用作修改就可以分布到多台机器上用。如果象你想的那样内部通讯不需要安全验证,那么扩展起来还需要重新作安全验证,这样又会从另一个方面来增加工作量。是机器便宜还是开发人员的工资便宜呢?Really depends.( h+ T) g% P( x+ D' E, o1 u

    4 t, U0 U0 x. W7 n, @) J+ [很多时候设计决策本身就是一个trade off.
    " v0 F2 @6 }; x$ T& s. c3 r
    5 C, z. Q9 m4 N& C0 E3 |8 E/ r* e
  • TA的每日心情
    开心
    2023-1-5 00:48
  • 签到天数: 2591 天

    [LV.Master]无

    36#
     楼主| 发表于 2011-10-2 04:13:56 | 只看该作者
    ekid 发表于 2011-10-1 08:10 : i5 R! R4 \& h& ~/ C7 R- u
    怎么软件也像协议分层吗?
    % ~& h; M& o( a. N3 y4 o
    是啊,一直都是这样做的
  • TA的每日心情
    开心
    2023-1-5 00:48
  • 签到天数: 2591 天

    [LV.Master]无

    37#
     楼主| 发表于 2011-10-2 04:15:55 | 只看该作者
    sky100 发表于 2011-10-1 10:55
      ~1 D( r7 [' D! ~看你怎么看这个问题了。现代的软件工程都是多人甚至多团队合作型,万一其中的一个模块外包到印度去,那边的 ...

    $ Z+ x( E2 b2 d! {第一。测试是干什么的?
    9 _9 e: w: D) q% T
    3 M: \5 N5 L7 I( G. {第二。如果那堆web service根本不可能被deploy到外网呢?
    ; T/ @) o- E) P# P9 S6 }. s
    4 F( C2 c  }& e/ Y我明白你的意思,但是这个trade off理论上很合理,现实中则根本没有得益的时候,而成本却肯定在那里。
  • TA的每日心情
    开心
    2016-2-8 14:34
  • 签到天数: 2 天

    [LV.1]炼气

    38#
    发表于 2011-10-2 17:53:13 | 只看该作者
    这种每层都验证数据的做法我觉得没错
    , E" W. a1 I: u$ l7 T测试的做法我觉得似乎可以改进:通过修改下层的实际代码进行测试,这似乎过分了些
    ! r8 s3 f3 L5 V我不了解实际情况,觉得似乎可以干脆另写测试代码,模拟下层专门发送错误数据给上层,不然每次测试都修改生产代码,太麻烦太浪费了+ T. i* s. U' z# o6 _- o" F: F* o( q

    0 T0 `, o- d: m5 T" v9 k我如果是上层写代码的,宁愿自己写这个测试也说不定,当然能安排给下层是最好了
  • TA的每日心情
    开心
    2023-1-5 00:48
  • 签到天数: 2591 天

    [LV.Master]无

    39#
     楼主| 发表于 2011-10-2 18:56:46 | 只看该作者
    一瞬无尽 发表于 2011-10-2 04:53
    , ]* w: U) y6 m- l4 X- D4 g+ t这种每层都验证数据的做法我觉得没错* z8 D  Q( z6 Y& _! t( f; l. F  Y
    测试的做法我觉得似乎可以改进:通过修改下层的实际代码进行测试,这 ...
    ! _+ @" n0 v6 x4 S( P
    Good, you do that
  • TA的每日心情
    开心
    2023-1-5 00:48
  • 签到天数: 2591 天

    [LV.Master]无

    40#
     楼主| 发表于 2011-10-2 20:51:25 | 只看该作者
    一瞬无尽 发表于 2011-10-2 04:53
    $ c) a7 v2 M. N8 I9 j' b: \6 \这种每层都验证数据的做法我觉得没错: h0 ^6 g; W# F+ k6 {/ {
    测试的做法我觉得似乎可以改进:通过修改下层的实际代码进行测试,这 ...

    # _$ }% O, m- i& A% c5 [  L: f其实说起来,这个就看怎么做了,做得好的话是可以灵活配置的,也就是需要的话enable检测代码,否则disable掉就是。具体说来就是利用framework的能力,例如struts2的interceptor,可以做出几乎不带来额外开销而非常实用的检测程序来。

    手机版|小黑屋|Archiver|网站错误报告|爱吱声   

    GMT+8, 2024-12-26 15:58 , Processed in 0.045990 second(s), 17 queries , Gzip On.

    Powered by Discuz! X3.2

    © 2001-2013 Comsenz Inc.

    快速回复 返回顶部 返回列表