對於網站漏洞類,我們一直負責設計一個有意利用mysql數據庫的php登錄。雖然我有一些基本的編程知識,並且我有一個「功能」登錄頁面,但我不確定如何使它不安全?也就是說,我輸入的任何SQL注入類型查詢似乎都不被接受,並且當我運行諸如「SQL注入我」之類的附加組件時,它也找不到任何問題。我理解如何清理用戶輸入,查詢服務器等的概念......但是我並沒有非常困難的時間讓它變得「可破解」。相信我,花費了數小時的時間,嘗試了不同的東西而無濟於事。我想我在概念上很難理解這一點,所以我可能沒有朝着正確的方向前進。故意不安全的php登錄 - 不明確的方向
如果有人願意指引我正確的方向,或給我一些指針,我將不勝感激。
這些是基本的SQL注入攻擊,我試圖讓它容易受到攻擊。
<?php
session_start();
// store session data
$_SESSION['views']=1;
?>
<?php
//retrieve session data
// echo "Pageviews=". $_SESSION['views'];
?>
<?php
// Create connection
$con=mysqli_connect("localhost","root","","logins");
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$i=0;
$userName = $_POST['username'];
$userPass = $_POST['password'];
$result = mysqli_query($con,"SELECT * FROM users");
while($row = mysqli_fetch_array($result)){
if($_POST['username'] == $row['Username'])
{
$i++;}
if($_POST['password'] == $row['Password'])
{
$i++;}
}
if($i>1){
echo "Winner";
}
else{
echo "Loser";}
//echo $row['Username'] . " " . $row['Password'];
//echo "<br>";
//echo "<br>";
//echo $_POST['username'];
//echo "<br>";
//echo $_POST['password'];
// echo "<br>";
?>
另一種方法我Dabling用:
<?php
session_start();
// store session data
$_SESSION['views']=1;
?>
<?php
//retrieve session data
// echo "Pageviews=". $_SESSION['views'];
?>
<?php
// Create connection
$con=mysqli_connect("localhost","root","","logins");
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$verify = mysqli_query($con,"SELECT * FROM users");
while($row = mysqli_fetch_array($verify))
{
if (($_POST["username"] == $row['Username']) and ($_POST["password"] == $row['Password']))
{
echo "Winner " .$row['Firstname']." " .$row['Lastname'];
}
else
{
echo "Failure";
}
}
mysqli_close($con);
?>
您的代碼不容易受到SQL注入攻擊,因爲您沒有任何輸入到您的查詢。你的查詢是靜態的'SELECT * FROM users'。爲了使它們易受攻擊,你需要像''SELECT * FROM users'那樣的未經過濾的輸入。'WHERE username ='{$ _ POST ['username']}'「' –
你應該在你的查詢中直接向db輸入輸入以使它不安全,如果條件使用它們。檢查這有用的答案在這裏http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php?rq=1 – Fabio
哇,如此快速的迴應!我會給這些旋轉!謝謝! – Chip567