2016-09-15 3 views
-5

Мне нужно сделать приложение, которое может быть введено SQL, но я не могу сделать SQL-инъекцию. Я попробовал все, чтобы SQL ввел его, но мне это не удалось. Можно написать имя пользователя, например admin'#, потому что это замечает линию.Почему это не может быть введен SQL?

Надеюсь, вы можете мне помочь. Вы видите мой код чуть ниже.

<?php 
    include('include/config.php'); 
    include('parts/header.php'); 

    $submit = $_POST['submit']; 
    $username = $_POST['username']; 
    $password = $_POST['password']; 

    if ($submit) { 
     if(!empty($username OR !empty($password))) { 
      $sqlQuery = mysql_query("SELECT * FROM users WHERE username = '$username' AND password = '$password'"); 

      if(mysql_num_rows($sqlQuery) == 1) { 
       // Success - admin'# 
       echo "LOGGEDIN"; 
       $_SESSION['loggedin'] = 1; 
      } 
      else { 
       echo "Wrong password or username"; 
      } 
     } 
     else { 
      echo "You didn't fill every field."; 
     } 
    } 
?> 

<div id="container"> 
    <form action="login.php" method="POST"> 
     <input type="text" name="username" placeholder="Type user name..."> 
     <input type="password" name="password" placeholder="Type password..."> 
     <input type="submit" name="submit" value="Log in"> 
    </form> 
</div> 
+1

это размещается на где-нибудь жить? – RamRaider

+0

ваше условие И всегда делает ложным –

+3

Каковы были ваши попытки ввести его? – Phiter

ответ

-9

Вы можете использовать функцию mysql_real_escape_string, чтобы переменная обеспечить:

$username = mysql_real_escape_string($_POST['username']); 
$password = mysql_real_escape_string($_POST['password']); 
+0

Мое задание - создать приложение, которое не защищено, но мой код не может быть введен в sql:/ –

+0

вам нужно использовать htmlspecialchars() или strip_tags(). 1st преобразует специальные символы, такие как Decoder

+0

проверить эту ссылку http://stackoverflow.com/questions/6857817/a-php-function-to-prevent-sql-injections-and-xss – Decoder

-2
<?php 
include('include/config.php'); 
include('parts/header.php'); 


$submit = $_POST['submit']; 
$username = (int)$_POST['username']; 
$password =(int)$_POST['password']; 

if ($submit) { 
    if(!empty($username OR !empty($password))) { 
     $sqlQuery="SELECT * FROM users WHERE user_login = '$username' AND password = '$password'"; 

     //SELECT * FROM `wp_users` WHERE `user_login`='1' OR '1' = '1' AND `user_pass`='1' OR '1' = '1' 
     //$sqlQuery = mysql_query("SELECT * FROM users WHERE username = '$username' AND password = '$password'"); 
     echo $sqlQuery; 
     exit; 
     if(mysql_num_rows($sqlQuery) == 1) { 
      // Success - admin'# 
      echo "LOGGEDIN"; 
      $_SESSION['loggedin'] = 1; 
     } else { 
      echo "Wrong password or username"; 
     } 
    } else { 
     echo "You didn't fill every field."; 
    } 
} 
?> 

<div id="container"> 
    <form method="POST"> 
     <input type="text" name="username" placeholder="Indtast brugernavn.."> 
     <input type="password" name="password" placeholder="Indtast kodeord.."> 
     <input type="submit" name="submit" value="Log ind"> 
    </form> 
</div> 
выход

Вы Query будет это и всегда верно,

SELECT * FROM wp_users WHERE user_login = '7' AND user_pass = '7' 
+0

Doenst work:/Дает неверный пароль. –

+0

Вы проверили ссылку? –

+0

почему, могу ли я рассуждать о снижении голосов? –

Смежные вопросы