没有为 SQL 注射故意消毒
Not sanitizing purposely for SQL Injection
正如标题所说,我正在开发一个小项目并且遇到了一些问题。
尝试 SQL 直接在搜索框上注入,但似乎不起作用。
我相信我的代码并没有那么干净。如有任何意见,我们将不胜感激。
这是我的表单页面的一部分;
<form method="post" action="tablepaging1.php">
<div class="form-group">
<input type="text" class="form-control bg-light border-0 small" name="word" placeholder="Search for..." aria-label="word" aria-describedby="basic-addon2">
<input type="submit" value="Search" name="submit" class="login-button"/>
</div>
</form>
这是处理部分(tablepaging1.php)
<?php
require('config.php');
$word = $_POST['word'];
$min_length = 3;
if(strlen($word) >= $min_length){ // if query length is more or equal minimum length then
$raw_results = "SELECT * FROM services
WHERE `co_name` LIKE '%".$word."%' OR `co_phone` LIKE '%".$word."%'";
$getSearch_res = mysqli_query($link, $raw_results) or die('v3n0ms1x6SiX');
if(mysqli_num_rows($getSearch_res) > 0){ // if one or more rows are returned do following
while($results = mysqli_fetch_array($getSearch_res)){
echo "<p><h3>".$results['co_name']."</h3>".$results['co_phone']."</p>";
}
}
else{
echo "No results";
}
}
else{
echo "Minimum length is ".$min_length;
}
?>
所以你想尝试 SQL 注射?对于您的情况,请尝试以下输入 $word:
abc' or 1=1 or 'ddd
因此您的结果字符串将是
SELECT * FROM services WHERE co_name
LIKE '%abc' or 1=1 or 'ddd%' OR co_phone
LIKE '%abc' or 1=1 or 'ddd%'
您将从服务 table 中检索所有数据。
正如标题所说,我正在开发一个小项目并且遇到了一些问题。 尝试 SQL 直接在搜索框上注入,但似乎不起作用。 我相信我的代码并没有那么干净。如有任何意见,我们将不胜感激。
这是我的表单页面的一部分;
<form method="post" action="tablepaging1.php">
<div class="form-group">
<input type="text" class="form-control bg-light border-0 small" name="word" placeholder="Search for..." aria-label="word" aria-describedby="basic-addon2">
<input type="submit" value="Search" name="submit" class="login-button"/>
</div>
</form>
这是处理部分(tablepaging1.php)
<?php
require('config.php');
$word = $_POST['word'];
$min_length = 3;
if(strlen($word) >= $min_length){ // if query length is more or equal minimum length then
$raw_results = "SELECT * FROM services
WHERE `co_name` LIKE '%".$word."%' OR `co_phone` LIKE '%".$word."%'";
$getSearch_res = mysqli_query($link, $raw_results) or die('v3n0ms1x6SiX');
if(mysqli_num_rows($getSearch_res) > 0){ // if one or more rows are returned do following
while($results = mysqli_fetch_array($getSearch_res)){
echo "<p><h3>".$results['co_name']."</h3>".$results['co_phone']."</p>";
}
}
else{
echo "No results";
}
}
else{
echo "Minimum length is ".$min_length;
}
?>
所以你想尝试 SQL 注射?对于您的情况,请尝试以下输入 $word:
abc' or 1=1 or 'ddd
因此您的结果字符串将是
SELECT * FROM services WHERE co_name
LIKE '%abc' or 1=1 or 'ddd%' OR co_phone
LIKE '%abc' or 1=1 or 'ddd%'
您将从服务 table 中检索所有数据。