Archief - MYSQL: probleem om paswoord uit te lezen

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

Morre1977

Legacy Member
hoi, ik heb hier een database waar ik een username en paswoord inzet door volgende query:

Code:
CREATE TABLE tbl_auth_user (
user_id VARCHAR(10) NOT NULL,
user_password CHAR(32) NOT NULL, 
PRIMARY KEY (user_id)
);

INSERT INTO tbl_auth_user (user_id, user_password) VALUES ('admin', PASSWORD('admin'));

mijn tabel ziet er zo uit:

http://img99.imageshack.us/img99/9913/tabeldg1.jpg

Nu lukt het me niet om in te loggen met deze php-code:

PHP:
<?php
session_start(); 
$errorMessage = '';
if (isset($_POST['txtUserId']) && isset($_POST['txtPassword'])) {
   include 'config.php';
   include 'opendb.php';

   $userId = $_POST['txtUserId'];
   $password = $_POST['txtPassword'];

   $sql = "SELECT user_id 
           FROM tbl_auth_user
           WHERE user_id = '$userId' 
                 AND user_password = PASSWORD('$password')";

   $result = mysql_query($sql) 
             or die('Query failed. ' . mysql_error()); 

   if (mysql_num_rows($result) == 1) {

      $_SESSION['db_is_logged_in'] = true;
      
      header('Location: index_cms.php');
      exit;
   } else {
      $errorMessage = 'verkeerde inloggevevens !';
   }

   include 'closedb.php';
}
?>

Als ik mijn paswoordveld leeglaat in de tabel zelf, en ik vul dan niks in in mijn paswoordveld dan gaat ie wel door.het probleem zit em dus in de codering van het paswoord of om het uit te lezen. Iemand die een idee heeft ?

mijn paswoordveldje is:

Code:
<td><input name="txtPassword" type="password" class="box" id="txtPassword"></td>

Morre1977

Legacy Member
nog nooit van gehoord :s zal eens even nalezen of ik het kan gebruiken. Wat is er dan mis met mijn code eigenlijk ?

azerty_2006

Legacy Member
Zou het niet direct weten, heb nog nooit PASSWORD() van mysql gebruikt. Maar md5 is zowat de standaard voor het maken van hashes van wachtwoorden ;).

Lord Kveldulv

Legacy Member
Wellicht is de lengte van het veldje user_password te kort en dan ga je nooit een password kunnen matchen want er worden te weinig karakters opgeslagen.
En de meest gangbare manier is idd md5().

Da DreadLord

Legacy Member
probeer eens met LIKE ipv =

PHP:
$sql = "SELECT user_id
           FROM tbl_auth_user
           WHERE user_id LIKE '$userId'
                 AND user_password LIKE PASSWORD('$password')";

en ik zou idd md5 of iets dergelijks gebruiken ipv PASSWORD ;)

BuZz.LiGhTYeAr

Legacy Member
maak van uw CHAR(32) een VARCHAR(255) en steek uw password er opnieuw in. Uw veld is namelijk te klein.

Morre1977

Legacy Member
Da DreadLord zei:
probeer eens met LIKE ipv =

PHP:
$sql = "SELECT user_id
           FROM tbl_auth_user
           WHERE user_id LIKE '$userId'
                 AND user_password LIKE PASSWORD('$password')";

en ik zou idd md5 of iets dergelijks gebruiken ipv PASSWORD ;)

nope lukt ook niet. thx anyway

Morre1977

Legacy Member
BuZz.LiGhTYeAr zei:
maak van uw CHAR(32) een VARCHAR(255) en steek uw password er opnieuw in. Uw veld is namelijk te klein.

hey thx ... dat was het inderdaad :) merci he voor de hulp.

WHiSPy

Legacy Member
Da DreadLord zei:
probeer eens met LIKE ipv =

PHP:
$sql = "SELECT user_id
           FROM tbl_auth_user
           WHERE user_id LIKE '$userId'
                 AND user_password LIKE PASSWORD('$password')";

en ik zou idd md5 of iets dergelijks gebruiken ipv PASSWORD ;)

Nice. Nu kan ik 'n random username ingeven die aanwezig is in je databank en de 1e letter van 't paswoord gokken en ik ben ingelogd. :)
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan