WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   Problem med Update i Mysql Query? (https://www.wn.se/forum/showthread.php?t=1050389)

Zyry 2011-10-09 15:13

Problem med Update i Mysql Query?
 
Tja , håller just nu på med att fixa ett Settings page för mitt system fast den vill inte uppdatera ett nuvarande lösenordet?

PHP-kod:

<html>
<head>
<style type="text/css">
body
{
color:White;
}
</style>
</head>
<body>
<form name="form1" method="post" action="Settings.php">
<td>
<table width="100%" border="0" cellpadding="3" cellspacing="1" bgcolor="black">
<tr>
<td colspan="3"><strong>Settings </strong></td>
</tr>
<tr>
<td width="78">Username</td>
<td width="6">:</td>
<td width="294"><input name="myusername" type="text" id="myusername"></td>
</tr>
<tr>
<td>Old Password</td>
<td>:</td>
<td><input name="mypassword" type="password" id="mypassword"></td>
</tr>
<tr>
<td width="78">New password</td>
<td width="6">:</td>
<td width="294"><input name="myusername" type="text" id="newpw"></td>

<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<td><input type="submit" name="Submit" value="Make change!">
</form>
</body>
</html>
<?php
If (isset($_POST['newpw'])){
$host="XXXXXXXXXXXXXX"// Host name 
$username="XXXXXXXXXXXX"// Mysql username 
$password="XXXXXXXXXXXXX"// Mysql password 
$db_name="XXXXXXXXXXXXXXXX"// Database name 
$tbl_name="XXXXXXXXXXXXX"// Table name


mysql_connect("$host""$username""$password")or die("cannot connect"); 
mysql_select_db("$db_name")or die("cannot select DB");

$myusername=$_POST['myusername']; 
$mypassword=$_POST['mypassword'];
$newpw=$_POST['newpw'];
$newpw stripslashes($newpw);
$newpw mysql_real_escape_string($newpw);
$myusername stripslashes($myusername);
$mypassword stripslashes($mypassword);
$myusername mysql_real_escape_string($myusername);
$mypassword mysql_real_escape_string($mypassword);

$sql="SELECT * FROM $tbl_name WHERE username='$myusername' and password='$mypassword'";
$result=mysql_query($sql);

$count=mysql_num_rows($result);

if(
$count==1){
$sql="UPDATE $tbl_name
SET password='
$newpw' WHERE username='$myusername' and password='$mypassword'";
$result=mysql_query($sql);
Echo 
"Successfully changed your password!".$myusername."<br/>";
}
else {
echo 
"Wrong Username or Password";
}
}
?>


tackar på förhand!

pelmered 2011-10-09 15:28

Här är felet:
Kod:

<td width="78">New password</td>
<td width="6">:</td>
<td width="294"><input name="myusername" type="text" id="newpw"></td>

<input name="myusername"...
ska vara
<input name="newpw"...

Sedan tycker jag verkligen att du ska krypter/hasha läsenorden så att de inte sparas i klartext i databasen

Zyry 2011-10-09 15:30

Hur kryptar/hachar jag lösenordet?

nosnaj 2011-10-09 15:55

Hashfunktion: http://se.php.net/sha1

Zyry 2011-10-09 16:24

något annat förslag för hash funktioner?

Citat:

It is not recommended to use this function to secure passwords, due to the fast nature of this hashing algorithm

captaindoe 2011-10-09 16:30

md5

Adestro 2011-10-09 18:36

Du bör även salta din hash:
http://sv.wikibooks.org/wiki/L%C...-_MD5_och_salt

hnn 2011-10-10 00:00

php hash

Kod:

I was interested how "long" each hash is, so I did:

<?php
$data = "hello";

foreach (hash_algos() as $v) {
        $r = hash($v, $data, false);
        printf("%-12s %3d %s\n", $v, strlen($r), $r);
}
?>

which produce (long hashes are cropped)

md2          32 a9046c73e00331af68917d3804f70655                 
md4          32 866437cb7a794bce2b727acc0362ee27
md5          32 5d41402abc4b2a76b9719d911017c592
sha1          40 aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d
sha256        64 2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e730
sha384        96 59e1748777448c69de6b800d7a33bbfb9ff1b463e44354c3553
sha512      128 9b71d224bd62f3785d96d46ad3ea3d73319bfbc2890caadae2d
ripemd128    32 789d569f08ed7055e94b4289a4195012
ripemd160    40 108f07b8382412612c048d07d13f814118445acd
ripemd256    64 cc1d2594aece0a064b7aed75a57283d9490fd5705ed3d66bf9a
ripemd320    80 eb0cf45114c56a8421fbcb33430fa22e0cd607560a88bbe14ce
whirlpool    128 0a25f55d7308eca6b9567a7ed3bd1b46327f0f1ffdc804dd8bb
tiger128,3    32 a78862336f7ffd2c8a3874f89b1b74f2
tiger160,3    40 a78862336f7ffd2c8a3874f89b1b74f2f27bdbca
tiger192,3    48 a78862336f7ffd2c8a3874f89b1b74f2f27bdbca39660254
tiger128,4    32 1c2a939f230ee5e828f5d0eae5947135
tiger160,4    40 1c2a939f230ee5e828f5d0eae5947135741cd0ae
tiger192,4    48 1c2a939f230ee5e828f5d0eae5947135741cd0aefeeb2adc
snefru        64 7c5f22b1a92d9470efea37ec6ed00b2357a4ce3c41aa6e28e3b
gost          64 a7eb5d08ddf2363f1ea0317a803fcef81d33863c8b2f9f6d7d1
adler32        8 062c0215
crc32          8 3d653119
crc32b        8 3610a686
haval128,3    32 85c3e4fac0ba4d85519978fdc3d1d9be
haval160,3    40 0e53b29ad41cea507a343cdd8b62106864f6b3fe
haval192,3    48 bfaf81218bbb8ee51b600f5088c4b8601558ff56e2de1c4f
haval224,3    56 92d0e3354be5d525616f217660e0f860b5d472a9cb99d6766be
haval256,3    64 26718e4fb05595cb8703a672a8ae91eea071cac5e7426173d4c
haval128,4    32 fe10754e0b31d69d4ece9c7a46e044e5
haval160,4    40 b9afd44b015f8afce44e4e02d8b908ed857afbd1
haval192,4    48 ae73833a09e84691d0214f360ee5027396f12599e3618118
haval224,4    56 e1ad67dc7a5901496b15dab92c2715de4b120af2baf661ecd92
haval256,4    64 2d39577df3a6a63168826b2a10f07a65a676f5776a0772e0a87
haval128,5    32 d20e920d5be9d9d34855accb501d1987
haval160,5    40 dac5e2024bfea142e53d1422b90c9ee2c8187cc6
haval192,5    48 bbb99b1e989ec3174019b20792fd92dd67175c2ff6ce5965
haval224,5    56 aa6551d75e33a9c5cd4141e9a068b1fc7b6d847f85c3ab16295
haval256,5    64 348298791817d5088a6de6c1b6364756d404a50bd64e645035f

Och självklart ska du använda någon form av salt på dina lösenord

Nerix 2011-10-11 21:42

Sedan så kanske det är dags att flytta ut logiken ur vyn, börja skriva något mer semantisk HTML-kod, flytta ut din CSS till externa filer och följa PHPs konventioner :)

tartareandesire 2011-10-11 22:21

Citat:

Ursprungligen postat av captaindoe (Inlägg 20419927)

MD5 är ju sämre än SHA-1. SHA-1 + salt fungerar alldeles utmärkt men som alltid så bör man anpassa säkerheten efter användningsområde. Ibland räcker inte det samtidigt som till och med klartext kan vara okej i vissa fall.

BjörnJ 2011-10-11 23:08

Citat:

Ursprungligen postat av tartareandesire (Inlägg 20420212)
MD5 är ju sämre än SHA-1. SHA-1 + salt fungerar alldeles utmärkt men som alltid så bör man anpassa säkerheten efter användningsområde. Ibland räcker inte det samtidigt som till och med klartext kan vara okej i vissa fall.

Men man måste tänka på att även om inte tjänsten i fråga kräver hög säkerhet är det ändå viktigt att skydda lösenorden väl för användarnas skull, eftersom många använder samma lösenord på flera ställen.

tartareandesire 2011-10-12 00:34

Citat:

Ursprungligen postat av BjörnJ (Inlägg 20420221)
Men man måste tänka på att även om inte tjänsten i fråga kräver hög säkerhet är det ändå viktigt att skydda lösenorden väl för användarnas skull, eftersom många använder samma lösenord på flera ställen.

Absolut, jag gör det själv alltid rutinmässigt men tycker ändå inte det är helt nödvändigt i alla fall. Vet själv om en rad välkända sajter som sparar lösenord i klartext utan att de bryr sig nämnvärt och så länge det är på det viset spelar det egentligen inte heller så jättestor roll vad du själv gör - vet någon om vilka lösenord folk använder så är det ju bara att testa på oavsett hur du sparat dessa hos dig. Har man en omfattande lista på förekommande lösenord (folk tänker naturligtvis ganska lika) så kommer man också åt många konton (såvida sajterna inte har brute force-skydd av något slag förstås men lagrar de lösenord i klartext så är säkerheten i övrigt normalt sett ganska låg).

OM man av någon anledning väljer att ändå köra på helt okrypterade lösenord så kan man åtminstone se till att inte tillåta egenvalda lösenord.


Alla tider är GMT +2. Klockan är nu 03:09.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson