查看積分策略說明發表回覆
Discuz! 代碼
提示插入
直接插入
說明訊息

插入粗體文本 插入斜體文本 插入下劃線 置中對齊 插入超級連結 插入信件位址 插入圖像 插入 flash 插入代碼 插入引言 插入列表
刪除線 直線分隔線 虛線分隔線
    
添加文字底框
內容 [字數檢查]:

表情符號

更多 Smilies
字型大小 |||
溫馨提示:本區開放遊客瀏覽。


文章關鍵字 : [功能說明]
(關鍵字可加強搜索準確性, 如關鍵字多於一組, 請以 , 作分隔, e.g. : 阿笨,shiuh,第一笨)

 關閉 URL 識別 | html 禁用
 關閉 表情符號 | 表情符號 可用
 關閉 Discuz! 代碼 | Discuz! 代碼 可用
使用個人簽名
接收新回覆信件通知
推薦放檔網絡空間

檔案(Torent, zip等)
  1. freedl
  2. multiupload
  3. btghost
  4. 便當狗
  5. mediafire
  6. pillowangel
圖片(JPG, GIF等)
  1. hotimg
  2. tinypic
  3. mousems2
  4. imageshack
  5. imm.io
>>>歡迎推薦好用空間


最新10篇文章回顧
psycho

 發表於 2008-2-24 05:59 AM


引用:
陽だまり寫到:
那請問jocosn樣對於程式的防呆部分均是怎麼做處理呢


小弟一開始學php的時候是利用mysql來做資料存取
後來覺得蠻麻煩的,且並不是所有空間都支援sql
所以後來繼續研究利用文字檔來做資料存取這樣

不過寫著寫著,就發現當資料不如預期輸入的話
可能會造成格式大亂,所以就針對該部分做了些預防

http://codepoets.co.uk/doc/php_p ... se_web_applications
pear 的db package 的 Prepared Statements
人家都做好好
不要自己去造輪子

[psycho 在  2008-2-24 06:36 AM 作了最後編輯]


psycho

 發表於 2008-2-24 05:30 AM

送花有bug
你只要數字1,2,3, 後面再跟literal string 就可以做SQL injection

請管理員修復


psycho

 發表於 2008-2-24 05:09 AM


引用:
陽だまり寫到:


以目前twed2k來舉例的話,送花一個人最多3朵,我們可以有送1、2、3朵可以選
如果我去選一次送5朵呢,不知會造成什麼樣的訊息出來

<?xml version="1.0"?><root><message>er_2</message></root>

我送了八朵花
我送的header
GET /flower_ajax.php?pid=1015147&send_flower=8&math_rand=0.23964415885461487


桂正和

 發表於 2008-2-23 01:31 AM

個人是認為

永遠不要把使用者想得太聰明
也不要把使用者想得太笨
使用者會幹出什麼傻事實在很難想像

以WEB方面的程式來說
我會建議客戶端的檢查寫一份(以Script的方式)
然後在伺服器端在寫一份檢查

第一個檢查因為是在客戶端檢查
大部分的使用者如果沒有意外的話
操作錯誤都可以在第一個檢查就被找出來
這樣可以減少伺服器的負擔

第二部分的檢查就是防止那種比較故意的破壞
所以非常重要一定要做

如果寫得很煩的話
可以多多利用函數或者是物件的方式把常用的檢查寫好
以後直接套用即可
寫的功能越全面也越好用

以我自己來說
RegExp的檢查就會寫兩種
一種是客戶端的
一種是伺服端的

針對表單在伺服器端的檢查還會加上來源判斷
當然,這個東西也可以加在一些必要的流程中(防止被直接省略過一些步驟)

有時候我自己覺得
參考使用者的習慣不是壞事
但是有些東西還是得制定好規定
並且做好防護措施比較好

寧願多花些功夫做好保險
也不要以後補洞補的要死


Acute

 發表於 2008-2-22 08:35 PM

輸入界面的防呆, 其實已經是寫程式裡面最簡單的一部分了, 只是繁瑣而已
但是, 只要是輸入界面, 就應該每個部份都要加上去, 這是寫程式無聊而必須做的一部分
至於浪費資源, 其實也還好, 現在CPU 那麼快, 跑那一點點檢查程式, 影響還是很小的
一般程式, 防呆當然只需要一段, client/server 的程式, 就必須乖乖做兩段
一段可以在client 端先檢查, 但是可能遇到有人進行實驗, 硬是幫你把client 端程式改變
所以, 另一段必須乖乖放server 端, 不可省略

防呆程式只是繁瑣的檢查資料是不是容許的, 難度不高, 但是粉煩
反而某些處理格式相關的程式, 才真的是猜謎大會串 -- 不但繁瑣, 還很困難
例如: 寫個MP3 IDxx 的parser, 你就會發現, 資料說明只是參考, 實際上是猜謎大會
          猜的內容則是網路上四面八方的仁兄, 可能會怎樣誤解規格, 或者寫出怎樣的錯誤程式
          然後產生千奇百怪的資料, 而你的程式, 要在各種情形下, 不容許當機, 呵


chrixtal

 發表於 2008-2-19 05:23 PM

哈 Soupjvc999 大大說的很有同感啊~

其實外面有一些在講這方面的書可以去找來看看,我有陣子對這方面的東西很有興趣
他大抵上是歸類在 GUI 設計和程式設計 "法則" 之類的書~


soupjvc999

 發表於 2006-10-16 04:19 AM

防呆的意思,應該是防開發者的呆
哈  出錢的人永遠都是說話大聲的那邊

一開始有想到的地方就盡量做  沒想到的地方等到有蟲再改
無聊時候就打開別的 framework 看看別人怎麼防


laikyo

 發表於 2006-7-29 03:25 AM

所以才需要測試工程師阿


taichiun

 發表於 2006-7-28 05:41 PM

以前唸書的時候,學校老師說過他們以前寫的程式拿去交卷的時候,
他們的老師做的第一件事就是執行程式之後,就先開始亂敲一通,
如果出現任何問題,那就丟回去退卷.....
所以讓程式順利運作不要出現讓 USER 看不懂的訊息也算是 PG 該盡的義務吧?
像我現在待在 User 單位,只要出現任何跟他想像中不一樣的東西,
出現中文訊息都會說不懂了,更不要說英文訊息,那是直接死給你看啦。
有的時候是程式的問題,有的時候是資料面上的錯誤,User 輸入了錯誤的資料,
但是這時候你要 User 怎麼辦?你當然可以說是他的錯,
但是不管是誰對誰錯,到最後還是你要去處理,反正他們就是兩手一拍,
說一句:『啊,我不懂啊!』,你能奈他何?
ㄜ....好像變成在發牢騷了....到此結束...


陽だまり

 發表於 2006-7-7 10:49 PM


引用:
jocosn寫到:
雖然不是所有空間都提供資料庫,但是有專門只提供資料庫的網站。
對於不提供資料庫的網站,大部分都可以對外連接資料庫,如果不行,建議趕快換空間。
使用文字檔做資料楚哩,資料庫隱碼攻擊應該就無效,但是相對的也無法用到資料庫所提供的功能。
PHP 對於 CSV 檔案也有相關函數可供支援,
也可以用 PHP 相關函數做樣式比對,做字串長度限制,或是取出後再自行做資料形態轉換等等,
看自己的需求。
這個論壇很多人寫程式都嚇嚇叫,應該有很多前輩可以解決你的問題。

恩恩
因為用mysql的時候,倒是還沒開始注意相關的利弊這樣
最近才要開始來看mysql的文章這樣,因為差不多要開始找工作了

解決問題的話,目前遇到的應該都是小問題,不敢拿出來見笑
有朝一日還請多多指教,也感謝回覆的各位大大


本主題回覆較多,請 點擊這裡 檢閱。



所在時區為 GMT+8, 現在時間是 2024-11-1 07:43 AM
清除 Cookies - 連絡我們 - TWed2k © 2001-2046 - 純文字版 - 說明
Discuz! 0.1 | Processed in 0.018962 second(s), 7 queries , Qzip disabled