簡體   English   中英

使用Jquery選擇SQL表列-SQL注入?

[英]Selecting SQL table column with Jquery - SQL injection?

我正在尋找有關哪種方法更安全,更有效地使用的建議。

選項A:我有一個名為Calendar的數據庫,其中有12個表-“ January”,“ February”等。每個月都有它自己的.php頁面,帶有“ select * from jan”等。我有一個下拉菜單,當用戶選擇例如“ January”,我有一個ajax腳本,然后將jan.php加載到div“ currentmonth”中

我當時想做的是,因為除了“ currentmonth” div外,我還擁有一個“ recentlyadded” div,它顯示了按時間戳排序的最后3個條目。 我不確定如何顯示整個數據庫中最近添加的3個條目,因此我嘗試了選項B。

選項B:我有一個稱為日歷的表,每一行都有一個稱為月的列。 這樣可以更輕松地顯示最近添加的內容,但是我不確定如何實現下拉菜單。 從我已經讀過的想法中,我可以讓我接受sql注入。

這是一個想法:我有一個名為“ selectedmonth”的jquery變量,它等於所選月的值。 然后,我想使用該變量...例如,用戶選擇“ January”,值是“ jan”,然后我想用SELECT * FROM calendar WHERE months =“ jan”來更新sql語句,但是正如我所說,我聽說這可以讓我對SQL注入敞開大門。

無論如何,是否可以使用AJAX或JSON動態更新SQL語句? 有沒有一種方法可以做選項B,而又不讓我自己接受SQL注入? 還是我可以使用一種更簡單的方法來使用選項A,並且能夠找到整個數據庫中最近添加的3行?

我想知道的一件事是選項A,我顯然會有12個“ month” .php文件,這會增加頁面加載時間嗎?

任何建議將不勝感激。

使用准備好的語句,您應該沒事。 第二個選擇是可取的,第一個不是一個好主意...

您所要做的就是:

$row = $conn->prepare("SELECT * FROM calendar WHERE months = ?");
$row->bind_param('s', $_GET['month']);
$row->execute();
$row = $row->get_result();

而且您將無需進行SQL注入。 在這里閱讀更多。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM