安全防禦之防xss、SQL注入、與CSRF攻擊
阿新 • • 發佈:2018-12-24
XSS攻擊
- 個人理解,專案中最普通的就是通過輸入框表單,提交js程式碼,進行攻擊
例如在輸入框中提交 <script>alert("我是xss攻擊");</script>,如果沒有防
御措施的話,就會在表單提交之後,彈出彈窗 - 防禦措施,目前我主要是用一個過濾器,將特殊字元進行轉義
- 程式碼部分
SQL注入攻擊
- 個人理解,通過提交sql程式碼,進行攻擊,輕則不需要使用者名稱密碼可登入系統,
重則拿到你資料庫核心資料 - 防禦措施,專案使用的不同資料庫連線框架有不同的方法防禦,如果是javaweb
正常使用PreparedStatement預編譯,可進行防禦
mybatis則優先使用 #{}。因為 ${} 會導致 sql 注入的問題
參考連線 - 程式碼部分(這裡使用javaweb的時候程式碼)
-
public boolean login(String username,String password) throws ClassNotFoundException, SQLException{ /** * 1.得到Connection * 2.得到Statement * 3.得到ResultSet * 4.rs.next()返回的是什麼,我們就返回什麼 *
-
@Test public void fun1() throws ClassNotFoundException, SQLException{ String username="a' or 'a'='a"; String password="a' or 'a'='a"; boolean bool=login(username,password); System.out.println(bool); }
這裡的sql語句是
-
select * from t_user where username='a' or 'a'='a' and password ='a' or 'a'='a'
這就是sql注入攻擊的演示