none
如何防止被寫入怪怪的資料 ? RRS feed

  • 問題

  • 主要因為請了一堆人幫忙測試系統,

    發現有人給我註冊名稱打 http://yahoo.com.tw..... =.=

    雖然系統不會死....但是還是覺得怪怪的...

    就來測試一下微軟的註冊機制

    發現微軟註冊帳號

    會擋掉一些有疑慮的字串,

    請問這個是寫死的去擋 ?  還是有提供檢核的方法?

    像我故意打 http 就會顯示有不允許字元

    我也想做類似的事情 = =


    asp.net

    3.5


    • 已編輯 天氣 2015年1月8日 上午 02:15
    2015年1月8日 上午 01:01

解答

所有回覆

  • 驗證分為

    用戶端驗證:絕大部分是寫 JavaScript 進行資料正確性驗證。

    伺服器端驗證:即伺服器端接收到資料後進行資料正確性驗證。

    驗證的規則通常採"白名單",就是這裡只能出現什麼資料,其他都視為不合法。

    例如,Email,就需包含'@'符號,不能出現其他符號(有些允許'.', '-', '_'這三個)。


    理直氣和,切記。

    推廣

    微軟免費中文影音線上教學網站


    • 已編輯 KKBruceMVP 2015年1月8日 上午 02:18 錯字
    2015年1月8日 上午 02:17
  • Hello KK

    Email部份我不擔心,那一塊我有用微軟內建的檢核機制,個人實在不太喜歡用 JS

    直接回Server檢查 new System.Net.Mail.MailAddress(

     

    Hello No.18

    ~ RegularExpressionValidator 這個我有用 !!~ 用在限制只能輸入數字上

    感覺一般網路上常見的,亂數早就被破解,自己寫寫了一個這個驗證

    如果剛好甩到千位數,我只能說恭喜 ccc

    我本來以為有提供,『危險字串、字元』檢核之類的元件 @@

    所以還是只能用 這個類別擺上去,然後先設定好要限制的字元就對了

    看來微軟姓名欄位擋不能打 http,應該使寫死限制的 "http"的~

    謝謝兩位 !

    話說我覺得驗證的部分,微軟可提供像 WP動態磚那種概念

    出現

    5 6 1

    3 2 4

    驗證方式要你用滑鼠 or 手指頭

    拖移排成

    123

    456

    1. 這程式想去自動排也有點難度

    2. 符合現在都愛用滑

    3. 省去在那邊打大、小寫驗證切換的麻煩



    • 已編輯 天氣 2015年1月8日 上午 03:15
    2015年1月8日 上午 03:02
  • 題外話 : 您要接觸web base application , HTML / CSS /JavaScript 是不可能缺的 

    然後發現您有幾則發問 , 應該是ASP.NET版的 , 但您卻發到C#版來了


    微軟免費線上課程

    HTML5 & JavaScript程式開發實戰(MyBook)

    開發ASP.NET您要瞭解的基楚

    http://www.dotblogs.com.tw/ian (MyBlog)


    • 已編輯 No.18MVP 2015年1月8日 上午 05:15
    2015年1月8日 上午 03:26
  • http://www.funcaptcha.co/

    一般非 HTML 內容的過濾規則,因為沒有人知道你的商業規則是什麼,都是自行設計比較多,公司內做久做多了,可以自行類似的規則整理抽離出來以重覆使用。


    <p>理直氣和,切記。</p> <h4>個人</h4> <ul> <li>Blog:<a href="http://blog.kkbruce.net" target="_blank" title="KingKong Bruce記事">KingKong Bruce記事</a> </li> <li>Web:<a href="http://kkbruce.tw" target="_blank" title="kkbruce.tw">KKBruce.tw</a> </li> </ul> <h4>社群</h4> <ul> <li><a href="http://mvc.tw">twMVC</a></li> <li><a href="http://skilltree.my">Skilltree</a></li> <li><a href="http://study4.tw">Study4</a></li> </ul>

    2015年1月8日 上午 03:47
  • 如果您開發的是網頁, 使用WebForm技術的話, 預設會攔阻輸入JavaScript, 使用新版本的VS2013開發的MVC網站也有類似的功能

    2015年1月8日 上午 06:32
  • 題外話 : 您要接觸web base application , HTML / CSS /JavaScript 是不可能缺的 

    然後發現您有幾則發問 , 應該是ASP.NET版的 , 但您卻發到C#版來了


    微軟免費線上課程

    HTML5 & JavaScript程式開發實戰(MyBook)

    開發ASP.NET您要瞭解的基楚

    http://www.dotblogs.com.tw/ian (MyBlog)


    JavaScript 還是會用,但是我幾乎儘量少用,會跟AJAX有時候有衝突...外

    Client-Script 充其量只是為了減少Server端的負擔,但是還是超級不安全,因為還是可以繞過那一層傳到Server

    所以我還是儘量在Server端,進去前會在檢核一次...

    .

    不過我還是對 → 微軟註冊時姓名的檢核邏輯有一堆疑問

    1. 雖然他禁止@#$%^&,但是卻可以接受【.ˇˋ.....等】那限制前面那些字元的用意到底是為何 ?

    ※我猜微軟姓名是用 ^[@#$%^&*()_"'<>]這樣檔的。

    2. 反觀Google註冊時的姓名,@#$%^&這些都不會檔!

    我想不透讓User註冊姓名 or 帳號,存入@#$%^& 對系統到底有什麼影響.....?

    好像找不到相關討論文,Google既然能接受@#$%^,代表對系統無重大影響了吧 ?

    既然這樣那為何要花時間做阻擋呢?




    • 已編輯 天氣 2015年1月13日 上午 10:49
    2015年1月13日 上午 10:46
  • JavaScript 可不是只用來檢查資料的作用而已

    您應該誤解很大

    沒有JavaScript , 你怎麼操作DOM物件 , HTML5 沒有JavaScript 根本沒得玩

    至於為什麼Google不擋Microsoft要擋 , 這沒有什麼好探究的 

    就像有些網站要求密碼一定要英文+數字 +特殊符號 , 有些不要求一樣

    就取決人家怎麼規定而已


    微軟免費線上課程

    HTML5 & JavaScript程式開發實戰(MyBook)

    開發ASP.NET您要瞭解的基楚

    http://www.dotblogs.com.tw/ian (MyBlog)

    • 已標示為解答 天氣 2015年8月21日 上午 06:10
    2015年1月13日 下午 01:21