![]() ![]() ![]() ![]() |
|||||
|
|||||
樓主 培根 ![]()
![]() |
我有一個小問題,以下是我的語法,這是正確的語法 但我試圖在後面加上'',列如 `製令單號` = '@製令單號' 或 "'" & 20180827 & "'" 但是會報錯,我不知道要如何加上去 不然我之前都沒有加,不然就是直接打在上面,`製令單號` = '"& 20180827 &"',但這樣不是會有黑客方面的問題嗎?,我忘記專業名詞了。 我有一本SQL的書,他也是打在上面。 希望有大大能幫我解答!
搜尋相關Tags的文章:
[ VB.NET+MySQL 查詢加 ' ' ] ,
本篇文章發表於2018-08-27 17:04 |
1樓 |
如果用參數基本上應該不用擔心 SQL Injection,
另外參數直接用 @參數 就好了, 前後不要加 ' 字串用 "20180827" 就好了, 另外既然你之前的可以用了, 為什麼還要刻意改掉呢?
本篇文章回覆於2018-08-27 22:26
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
2樓
作者回應
培根 ![]() |
謝謝您的回覆
我之前有看過一篇說 SQL 要少用+跟&來組成的字串 但我對 SQL Injection 的問題沒有說很熟。 找到一些網站http://cbb.sjtu.edu.cn/course/database/lab8.htm 他有講到沒加跟有加的安全性 雖然說原本的式子可以用,但是我想因該關西到安全的問題。 所以我想加上單引號,但是我又不能有用+跟&,所以還滿困擾的。 不知道小魚有沒有方法可解?
本篇文章回覆於2018-08-27 22:45
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
3樓
最有價值解答
彩虹 ![]() |
依你的例子
「`製令單號` = '@製令單號'」 報錯原因應該是找不到「@製令單號」參數,因為你用單引號包起來,其實等同於字串 「`製令單號` = "'" & 20180827 & "'"」,你應該在第一個單引號出現時,後面整串變成註解~ 「`製令單號` = '"& 20180827 &"'」等同「`製令單號` = '20180827'」 依你目前的例子,不會有 sql injection 問題 因為你是直接給值,並不是透過變數帶入值,如果你是透過 POST 或 GET...等,就不能這樣使用,一定會被攻擊 有時候在查詢時,不需要透過參數傳遞,而是一定會下固定條件的情況下,是可以直接把值打在裡面, 例如: 前台首頁最新消息內容,只能撈取「公開中」的文章,這時候可以這樣下,一半用參數、一半固定值
本篇文章回覆於2018-08-27 23:08
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
4樓
不錯的參考
小魚 ![]() |
彩虹大大說到一個重點,
SQL Injection主要是針對使用者輸入的部分做防範, 如果是寫死的或是有限定選項給使用者選擇, 就算不用參數也沒關係, 只是我還是習慣會帶參數就是了, 就不用去思考到底是使用者輸入的還是不能輸入的.
本篇文章回覆於2018-08-28 00:11
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
5樓
作者回應
培根 ![]() |
原來如此,那我知道了!
感謝兩位高手,分享知識。
本篇文章回覆於2018-08-28 07:47
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
6樓
作者回應
培根 ![]() |
依照 彩虹 的例子下去使用,是可以的
但是如果變成 參數就沒辦法了
本篇文章回覆於2018-08-28 09:12
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
7樓 |
「`製令單號` = '" & "@製令單號" & "' 」 當然一樣不行XD
你拆開後,意思一樣等同 「`製令單號` = '@製令單號' 」 ,一定會報錯呀∼ 例如 「name="彩" & "虹"」 =「name="彩虹"」 用參數的情況下,是不能加 ' 單引號的∼,因為包在單引號裡面, 「@製令單號」 就不是參數了∼而是字串值 「'@製@令@單@號' 」這樣也都只是字串值,跟參數無任何關係了 你如果硬要拆開,就不能加單引號,但是真的蠻沒必要這樣的XDD
本篇文章回覆於2018-08-28 09:26
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
8樓
作者回應
培根 ![]() |
原來如此。
我以為用參數還要自己加單引號。 我有時候常常會去看MySQL給出的指令,像刪除、新增等的... 它都有加單引號,所以我才會想加上去。 但我不知道用了參數後,會自己加單引號! 謝謝您!
本篇文章回覆於2018-08-28 09:39
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
9樓 |
不是「用參數後,會自己加單引號」
而是用參數後,值會透過參數帶入,就不用擔心需不需要加單引號了 傳入的值可能是 string 或 int
本篇文章回覆於2018-08-28 09:48
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
10樓
作者回應
培根 ![]() |
原來如此!,那我了解了!
我原本是怕SQL Injection,但現在知道不引響,所以也不會改程式碼了。 謝謝您!
本篇文章回覆於2018-08-28 17:31
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
11樓 |
我是一個有點小脾氣的GTO 但是對於你我很認真 七號店一直都在 不斷的更新動態哦 很多的妹妹報班哦 北中南都有的說 只要你動動你的手指頭加一下我 賴:8w88你就可以享受到正妹悶騷服務哦!!!!
本篇文章回覆於2018-08-31 01:53
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
回覆 |
如要回應,請先登入. |