服务器加倍撇号时sql注入

时间:2017-10-07 04:03:33

标签: mysql sql

我明白,如果没有任何保护措施(加倍''')我们可以简单地使用

Option Explicit
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Column <> 1 Then Exit Sub 'or which ever column you enter for
Dim str_Act, str_Test As String
Dim i As Integer
'find value to search
str_Act = InputBox("Enter User Last Name")
If str_Act = "" Then Exit Sub
'loop to find search
Do While str_Act <> str_Test
    str_Test = Sheets(1).Range("A1").Offset(i, 0) ' or whichever column has your value
    i = i + 1
Loop
'Copy and paste
Sheets(1).Range("A1:ZZ1").Offset(i - 1, 0).Copy
Target.PasteSpecial
End Sub

但是当服务器加倍时,我该如何做到这一点?根据我的研究,我们似乎使用了\但我仍然感到困惑。

我试过了:

'or'1=1--

但是我收到语法错误。我有什么误会?谢谢

1 个答案:

答案 0 :(得分:0)

如果您正在尝试避免SQL注入,最佳做法是避免直接将查询插入数据库的函数(例如mysqli_query()。相反,存储过程和预准备语句可以提供针对SQL的一层保护请参阅w3schools上的prepared statements和MySQLTutorial上的stored procedures

但是,您可以在所有插入的数据上使用PHP函数mysqli_real_escape_string()htmlspecialchars()来插入撇号(&#39;和&#34;)来解决问题。这种方法绝不安全,但允许使用这些字符插入数据,并且 - 谁知道 - 停止一个非常有效的黑客。