如何有效防止sql注入
阿新 • • 發佈:2020-08-12
SQL注入攻擊是黑客對資料庫進行攻擊常用的手段之一,隨著B/S模式應用開發的發展,使用這種模式編寫應用程式的程式設計師也越來越多。但是由於程式設計師的水平及經驗參差不齊,相當大一部分程式設計師在編寫程式碼的時候,沒有對使用者輸入資料的合法性進行判斷,使應用程式存在安全隱患。使用者可以提交一段資料庫查詢程式碼,根據程式返回的結果,獲得某些他想獲取的資料,這就是所謂的SQL Injection,即SQL注入。
## 一 背景
假如某高校開發了一個網課系統,要求學生選課後完成學習,資料庫中有一張表`course`,這張表存放著每個學生的選課資訊及完成情況,具體設計如下:
![](https://img2020.cnblogs.com/blog/1719198/202008/1719198-20200812090423238-494854246.png)
資料如下:
![](https://img2020.cnblogs.com/blog/1719198/202008/1719198-20200812090433633-1315287490.png)
本系統採用mysql做為資料庫,使用Jdbc來進行資料庫的相關操作。系統提供了一個功能查詢該學生的課程完成情況,程式碼如下。
```java
@RestController
public class Controller {
@Autowired
SqlInject sqlInject;
@GetMapping("list")
public List