隨筆 - 251  文章 - 504  trackbacks - 0
          <2006年7月>
          2526272829301
          2345678
          9101112131415
          16171819202122
          23242526272829
          303112345

          本博客系個人收集材料及學習記錄之用,各類“大俠”勿擾!

          留言簿(14)

          隨筆分類

          收藏夾

          My Favorite Web Sites

          名Bloger

          非著名Bloger

          搜索

          •  

          積分與排名

          • 積分 - 204337
          • 排名 - 283

          最新評論

          系統(tǒng)越做越大,問題越來越多,有些徹底解決了,有些湊合解決了,有些還沒有辦法,現(xiàn)在把碰到的主要問題列出來,給大家前車之覆:

          1? 跨瀏覽器布局的問題: 由于瀏覽器之間的微小差距,在布局復雜的頁面時將會碰到麻煩
          ?? 我現(xiàn)在的項目就要求firefox 和ie. 由于ie一些著名的bug,有時候不小心就踩到地雷。

          2? 日期控件
          ?? 如何實現(xiàn)跨瀏覽器的日期控件,如何設定缺省值,如何實現(xiàn)大范圍的日期直接定位?如何自適應多區(qū)域格式問題?
          ?我也用過不少現(xiàn)成的東西,比如 http://www.mattkruse.com/javascript/calendarpopup/
          ? 但都有或多或少的問題

          3、分辨率
          ? 如何支持常見分辨率,例如800*600 ,1024*768,1280*1024?表格和層如何自適應?
          ? 有些客戶喜歡居左居中,有些內(nèi)容超寬,有些超寬內(nèi)容還在容器里,有些還要疊加,把這些混在一起麻煩就來了

          4、防止SQL注入式攻擊
          ? 參數(shù)使用占位符,這個算是基本解決了,只是有些擔心數(shù)據(jù)庫的效率。

          5.防止腳本攻擊。? 有時候需要在頁面允許部分html或javascript代碼, 如顯示多行文本。
          ? html 轉(zhuǎn)義我知道,但我要允許部分html代碼起作用,比如我要讓
          起作用,其他不起作用,以實現(xiàn)多行文本
          6、用戶非授權(quán)頁面訪問
          ? 如何實現(xiàn)每個頁面的安全驗證,如何防止用戶通過直接拷貝具體頁面地址等方式,訪問系統(tǒng);? 包括沒有鏈接的某些頁面和jsp 頁面。 如何控制部分權(quán)限,最小控制單元是什么?

          ?看上去很簡單,但一深思問題就來了,
          每個頁面的安全驗證:動態(tài)頁面一般是 URL + Query String
          URL數(shù)量有限,但Query String一般以id為參數(shù),有許多,所以如以URL為基礎驗證,則有時候
          粒度不夠細,如加上Query String,則不能再以配置表為基礎校驗,因為Query String乘以
          用戶數(shù)量(或角色數(shù)量,將是一個天文數(shù)字),所以如何建立安全驗證規(guī)則表又是一個頭疼的
          問題,每個系統(tǒng)的安全驗證規(guī)則都不一樣。

          再深入,你會發(fā)現(xiàn)如果一個操作被分成幾個步驟,此時,這幾個步驟的頁面必須是相同的權(quán)限
          設置,否則用戶操作到一半,告訴他沒有權(quán)限,他會被氣死的。

          如果再細化粒度,頁面某些元素能夠被部分用戶修改和看見,你的頭開始疼了嗎?
          7、重復提交問題
          ?功能操作完成后,鼠標右鍵點擊所在頁面,選擇彈出菜單的刷新功能,容易出現(xiàn)重復提交問題。功能操作完成后,通過瀏覽器的后退鍵進行重復操作,容易出現(xiàn)重復提交問題。? URL沒有重定向,刷新頁面出現(xiàn)重復提交問題。某功能鍵反應時間延遲時,在短時間內(nèi)重復點擊該功能鍵,容易出現(xiàn)重復提交問題;
          ?某些用戶習慣雙擊按鈕,某些用戶錯誤地點了兩次按鈕,某些鼠標出現(xiàn)故障,導致單擊變成雙擊,結(jié)果發(fā)生重復提交。
          如果不加處理,這些請求都會被服務器處理,從而導致錯誤的結(jié)果。

          struts的token確實能解決問題,但用戶老是向我抱怨,為什么我不
          能用瀏覽器的回退按鈕重新提交,我在其他網(wǎng)站上從沒有這個問題,你如何解釋?
          然后你還會發(fā)現(xiàn)部分操作是能夠允許重復提交的。

          8.如何鎖定資源如記錄:這是一個老大難問題了,為此還搞了不少東西出來。用 關鍵詞 隔離級別 臟 鎖定 去搜搜,就會發(fā)現(xiàn),要解決這個問題是有方法的,但代價你愿意承擔嗎?開發(fā)代價,性能代價,可用性代價

          9,如何防止瀏覽器記住數(shù)據(jù),某些瀏覽器能夠為每一個URL記住用戶輸入的數(shù)據(jù),在某些情況下是危險的。比如我修改了某些數(shù)據(jù),但由于某些原因我想刷新,此時數(shù)據(jù)已經(jīng)被其他用戶修改,但在瀏覽器里面你看到的是你修改的數(shù)據(jù)(你用刷新按鈕也不能看到新數(shù)據(jù))。如果你再次保存,你認為你沒有修改數(shù)據(jù),但數(shù)據(jù)已經(jīng)被修改了。當頁面是腳本動態(tài)生成的時候,這個問題更嚴重。常發(fā)生在firefox等瀏覽器上。

          10,如何防止或偵測客戶修改瀏覽器設置,比如客戶在打開頁面之后關閉腳本功能。
          有時候甚至不是用戶禁止腳本,而是么某些軟件和插件,病毒甚至企業(yè)文化影響到用戶設置。

          11,回退問題,對于工作流熟悉的人對這個問題很清楚,某個操作節(jié)點如何回到啟動點,如何回到上一節(jié)點,如何避免硬編碼? 比如一個頁面被兩個操作流所共享,此時安全驗證是個問題,回退也許要仔細考慮。

          12,校驗問題,如何同時實現(xiàn)客戶端和服務器端校驗,客戶端調(diào)用服務器端的校驗功能。
          我已經(jīng)在使用struts自帶的apache commons validator,可是我不得不修改許多地方才能
          用起來。比如我有些隱藏字段需要校驗。但commons validator居然使用focus語句,導致出錯。
          這是小的bug,但更麻煩的是部分服務器端的校驗沒有辦法在客戶端實現(xiàn)。比如validwhen
          又如,某些校驗需要查詢數(shù)據(jù)庫,所以我想要的校驗應該是能夠被ajax 調(diào)用,這樣
          校驗在客戶端和服務器端完全一樣,但這樣客戶端校驗還有必要嗎,我們原來用客戶端校驗
          是看中他的校驗響應快,不給服務器加負擔。所以我又迷茫了。

          13,如何防止數(shù)據(jù)偽造,如何防止客戶使用特殊工具和技術(shù)偽造數(shù)據(jù)提交到服務器。
          瀏覽器發(fā)送的數(shù)據(jù)都是遵循公開的標準,嗅探器等黑客工具可以隨便地修改你的數(shù)據(jù),
          還有一些神奇的瀏覽器插件可以任意修改數(shù)據(jù)。就算ssl也只能保障中間傳輸,客戶端無法控制。你還認為你的隱藏字段是安全的嗎?你還認為你的select只有那幾個選項嗎?

          14, 如何追蹤定位錯誤,如何處理異常?
          ?? 在一個運行的系統(tǒng)里,你如何知道哪個數(shù)據(jù)產(chǎn)生了這個錯誤?多個用戶的日志絞纏在一起如何組織?

          15,如何在兩個操作之間傳遞大量數(shù)據(jù),尤其是非存儲數(shù)據(jù)。比如分頁數(shù)據(jù)(按什么列排序的第幾頁,過濾條件)一般是不存儲到數(shù)據(jù)庫的,但在某些時候必須傳遞到下一個頁面,session 也不是最終解決方案。

          16, 帶安全控制的斷點續(xù)傳的上載 和下載甚至服務器端恐怕也要裝點什么,這個可是許多企業(yè)的忌諱

          17,分布式環(huán)境的特殊處理,

          18,如何提高開發(fā)效率?

          posted on 2006-07-22 11:02 matthew 閱讀(224) 評論(0)  編輯  收藏 所屬分類: JavaEE
          主站蜘蛛池模板: 四平市| 商城县| 三河市| 德钦县| 丹江口市| 安福县| 洪雅县| 侯马市| 和林格尔县| 抚远县| 古田县| 浮梁县| 穆棱市| 密山市| 务川| 屯留县| 宝坻区| 汉中市| 达孜县| 龙里县| 日照市| 舞阳县| 库尔勒市| 日喀则市| 永城市| 新竹市| 三明市| 罗甸县| 双鸭山市| 六枝特区| 军事| 益阳市| 麦盖提县| 连城县| 凌云县| 类乌齐县| 邯郸县| 汪清县| 普兰店市| 瑞昌市| 寻乌县|