SQL injection 中文叫 資料隱碼攻擊 ,通常是因為網址所帶的參數,在前後端沒有好好驗證,就帶入執行的SQL而引發的嚴重危險,在.NET其實也有相對方便的參數化查詢可以用。但有時候用自己的框架想要初步的防止可以排除以下字元:
String injStr = "'|SELECT|AND|EXEC|INSERT|DELETE|UPDATE|COUNT|*|%|CHR|MID|MASTER|TRUNCATE|CHAR|DECLARE|;|OR|-|+|,|)|(|<|>|`|\""
SQL injection 中文叫 資料隱碼攻擊 ,通常是因為網址所帶的參數,在前後端沒有好好驗證,就帶入執行的SQL而引發的嚴重危險,在.NET其實也有相對方便的參數化查詢可以用。但有時候用自己的框架想要初步的防止可以排除以下字元:
String injStr = "'|SELECT|AND|EXEC|INSERT|DELETE|UPDATE|COUNT|*|%|CHR|MID|MASTER|TRUNCATE|CHAR|DECLARE|;|OR|-|+|,|)|(|<|>|`|\""
最近專案(WEBFORM)碰到一個需求:上傳圖片後,按一個按鈕把圖片插入下方文字編輯格內。實做後碰到一個難點,因為頁面上不只一個FILEUPLOAD原件,如果另一個上傳檔案會觸發POSTBACK,讓另一個上傳地方的資訊被清除,考慮過後決定從簡單的方式解決,實做一個上傳圖片插入的頁面用IFRAME鑲在主頁面,這樣幾次POSTBACK都沒問題了。
今天開專案,發生了一件很奇怪的事,在用debug模式偵錯的時候,無法偵測到該程式碼的運行,有個紅O寫目前無法叫用中斷點。未載入這個文件的符號。,研究了一陣子,發現是要偵錯的code被判定成非使用者程式碼具體如MSDN所寫
以前就有升級過舊CODE到VS2017或VS2015的經驗,但這次模稜兩可的錯誤比較特別,不是常見的前端命名名稱相同(無論大小寫)因而報錯,而是後臺.CS在自訂UI的後,有重覆命名的,進而引發模稜兩可的衝突。
像是 protected System.Web.UI.WebControls.ImageButton Imagebutton2 但如果重覆命名就會引發這個錯誤,可以把沒用到的後台ui物件刪掉。
使用多執行緒的簡單測試,用lambda寫法配合迴圈去指派工作 並用WaitHandle.WaitAll 等待全部子執行緒完成後,再繼續往下執行程式
完整程式載點 https://github.com/courage00/Multithreaded-Component