Eri*_*rik 3 sql-server sql-injection
我最近用以下代码示例回答了一个问题:
Create Table #Testing
(
emaildomain varchar(100) -- Still bigger than functionally needed but better than MAX
);
INSERT INTO #Testing VALUES (REVERSE('@myfreepaysite.com')); -- Changed
Create Table #DataToCheck
(
fullemail varchar(200) -- Still bigger than functionally needed but better than MAX
);
Insert Into #DataToCheck VALUES(REVERSE('rr1234@myfreepaysite.com')); --Changed
Select Top 1
REVERSE(fullemail)
, REVERSE(emaildomain)
FROM #DataToCheck
INNER JOIN #Testing ON fullemail LIKE emaildomain + '%';
Run Code Online (Sandbox Code Playgroud)
当我写最后一行时,我想知道EmailDomain
用通配符连接列是否是 SQL 注入的开始。这是我应该注意这种类型的代码还是 SQL Server 会将其评估为单个统一参数以便我不必担心使用这种方法?
不。该值将始终被解释为字符串,并且无法将任何内容放入emaildomain
列中,这可能会使查询执行意外代码。它要么会找到匹配项,要么不会。
当然,这与您发布的特定代码示例有关,仅此而已。您应该始终关注您从用户那里接受的任何数据......因为您可能不知道现在或将来可能会在哪里使用它。
归档时间: |
|
查看次数: |
118 次 |
最近记录: |