"Maltes login" med saltade lösenord

PHPportalen Forum Index » Tips och Trix
Lägg ett bokmärke på hela tråden
Skapa nytt inlägg   Svara på inlägget Gå till sida Föregående  1, 2, 3, 4, 5, 6, 7, 8, 9, 10  Nästa
Visa föregående ämne :: Visa nästa ämne  
Startad av: Meddelande
PSN



Medlem i: 5938 dagar
Från: Norrtälje
Status: Offline



#560671
Inlägg Skrivet: 2008-02-27 18:23      Ämne: Citera

gothenburg skrev:
Alltså, den krypterar $salt (statiskt salt) tillsammans med användarnamnet
så alla har olika lösenord i databasen även om de har samma.

PSN skrev:

kan någon peka ut var man ställer in detta?
spuun skrev:

safepass() är väl ändå fel? (vad får du luska ut själv)

Och att ha samma hash till alla lösenord ökar inte någon säkerhet direkt.


Hur menar du att safepass() är fel? Det vore bra om man fick olika hash till resp user så hur löser man detta?


Det verkar inte vara så då jag regeisterarde 2 olika användarnamn med 2 olika lösen och jag kan logga in med bägges lösord. Kan det vara att din safepass() är felaktig kring
KOD:
1:
$dynSalt = sha1($username.$salt);
för varifrån får du variabeln $username?

jag kollade strängen i databasen och den är exakt likadan för bägge användarna trots att jag angav helt skillda lösenord.
 

_________________
//Per
Livet är oändligt!
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
gothenburg



Medlem i: 4648 dagar
Från: Sverige
Status: Offline



#560683
Inlägg Skrivet: 2008-02-27 19:02      Ämne: Citera

Oj, missade det.
Nu är allt fungerande!
 

_________________
Vem får din röst i höst? | Enkelt loginsystem | Enkelt paging-system
Till toppen på sidan
Visa användarprofil Skicka privat meddelande Besök användarens hemsida
PSN



Medlem i: 5938 dagar
Från: Norrtälje
Status: Offline



#560686
Inlägg Skrivet: 2008-02-27 19:05      Ämne: Citera

Ok så missen låg helt i din functions.php antar jag!?
 

_________________
//Per
Livet är oändligt!
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
gothenburg



Medlem i: 4648 dagar
Från: Sverige
Status: Offline



#560720
Inlägg Skrivet: 2008-02-27 20:29      Ämne: Citera

Ja, hade inte gjort variabeln $username.


PSN skrev:
Ok så missen låg helt i din functions.php antar jag!?
 

_________________
Vem får din röst i höst? | Enkelt loginsystem | Enkelt paging-system
Till toppen på sidan
Visa användarprofil Skicka privat meddelande Besök användarens hemsida
spuun



Medlem i: 5901 dagar
Från: Linköping
Status: Offline



#560747
Inlägg Skrivet: 2008-02-27 22:45      Ämne: Citera

Hm.. Password ska skickas med som argument till safepass(), men username tas direkt från en post-variabel? Hur snyggt är det? :S
 

_________________
:] :] :] *kjamizzar* :] :] :]

Varför inkludera allt i indexfilen?
Till toppen på sidan
Visa användarprofil Skicka privat meddelande Besök användarens hemsida
PSN



Medlem i: 5938 dagar
Från: Norrtälje
Status: Offline



#560797
Inlägg Skrivet: 2008-02-28 07:26      Ämne: Citera

spuun skrev:
Hm.. Password ska skickas med som argument till safepass(), men username tas direkt från en post-variabel? Hur snyggt är det? :S


Spuun: Nått förslag om bättre lösning är alltid välkommet? Antar att du menar att username borde skickas även det som argument och inte ligga inom safepass()!?

Eftersom lösenordet inte kan återfås om man glömt detta så är det att skapa ett nytt lösen till en befintlig användare och maila ut detta. Hur får man till ett random lösen som man sedan saltar via din functions.php?

Hittade lite via forumet, kan detta funka tro:
PHP:
1:
 //Skapa nytt lösenord
2:
      $bokstav = array("a""b""c""d""e""f""g""h""i""j""k""m""n""o""p""q""r""s""t""u""v""w""x""y""z""A""B""C""D""E""F""G""H""J""K""L""M""N""P""Q""R""S""T""U""V""W""X""Y""Z""0""2""3""4""5""6""7""8""9");
3:
      $antal count($bokstav);
4:
      $password "";
5:
      for ($j 0$j 6$j++) {
6:
        $slump rand(0, ($antal 1));
7:
        $password.= $bokstav[$slump];
8:
      }
9:
$passwd safepass($password);
10:
mysql_query("UPDATE members SET pass = '$passwd' WHERE user='{$_POST['user']}'");
11:
 
12:
$result mysql_query("SELECT email FROM members WHERE user='{$_POST['user']}'"); 
13:
           $email mysql_result($result0); 
14:
         
15:
           $user $_POST['user']; 
16:
         
17:
         //Mail
18:
         $headers  = "MIME-Version: 1.0\r\n";
19:
         $headers .= "Content-type: text/plain; charset=iso-8859-1\r\n";
20:
         $headers .= "From: ADMIN <info@test.se>\r\n";
21:
 
22:
           $amne  = "Nytt lösenord."
23:
 
24:
           $text  = "Hej!\n"
25:
           $text .= "Du har begärt att få ditt användarnamn och\n"
26:
           $text .= "lösenord mailat.\n"
27:
           $text .= "Om du inte har begärt detta så kasta detta mail.\n"
28:
           $text .= "\n"
29:
           $text .= "Din information:\n"
30:
           $text .= "=====================================\n"
31:
           $text .= " Användarnamn: $user\n"
32:
           $text .= " Lösenord:     $password\n"
33:
           $text .= "=====================================\n"
34:
           $text .= "\n"
35:
           $text .= "/ Mvh Admin\n"
36:
 
37:
           mail($email$amne$text$headers); 
38:
         //Slut Mail
39:
 


Tipsa gärna om man kan bygga slumpningen på enklare sätt inom $bokstav!
 

_________________
//Per
Livet är oändligt!
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
PSN



Medlem i: 5938 dagar
Från: Norrtälje
Status: Offline



#560905
Inlägg Skrivet: 2008-02-28 16:21      Ämne: Citera

Önskar lite feedback på mitt sista inlägg i tråden ovan!

EDIT: Har nu testat och ovanstående fungerar klockrent vad gäller att generera nytt lösen som mailas samt sparas saltat i databasen.
 

_________________
//Per
Livet är oändligt!
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
cazz



Medlem i: 5446 dagar
Från: Småland :)
Status: Offline



#561626
Inlägg Skrivet: 2008-03-02 20:13      Ämne: Citera

Intressant men om man ska erkänna så känns det lite osäkert

Det jag kunde tänka mig är att de skickas ut ett mail och i den så finns det en länk som är slumpartad id nummer och klickar man på den så

Får man skapa ett nytt lösenord som blir saltad och det.

Detta gör två saker

1) Man kan kasta mailet om man inte har begärt det utan att den byter lösenordet åt en.

2)
Personen själv får välja och det gör det lättare att komma ihåg det.
Brukar vara svårt att komma ihåg ett lösenord man är tilldelad och det slutar med att man antingen glömmer bort det ofta eller skriver upp det och det är ju inte så säkert i sig.
 

_________________
MVH
Cazz

"Men are pigs. Too bad we own everything."
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
PSN



Medlem i: 5938 dagar
Från: Norrtälje
Status: Offline



#561650
Inlägg Skrivet: 2008-03-02 21:30      Ämne: Citera

Cazz, vad är vitsen med att maila ut en länk med slumpartad idnummer?

Kan hålla med om att lösenord som slumpas ut kan vara svåra att komma ihåg. Men å andra sidan så brukar egna lösenord vara ganska enkla att knäcka så det är lite vitsen med slumpningen.
 

_________________
//Per
Livet är oändligt!
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
cazz



Medlem i: 5446 dagar
Från: Småland :)
Status: Offline



#561654
Inlägg Skrivet: 2008-03-02 21:36      Ämne: Citera

PSN skrev:
Cazz, vad är vitsen med att maila ut en länk med slumpartad idnummer?

Kan hålla med om att lösenord som slumpas ut kan vara svåra att komma ihåg. Men å andra sidan så brukar egna lösenord vara ganska enkla att knäcka så det är lite vitsen med slumpningen.


Tja det underlättar om man vill låta besökaren kunna skriva in ett eget lösenord.
Skickar heller inte med lösenordet via mail (Fast det är ju en smaksak)
Jag tittade inte så mycket på ditt script men ska göra det men vad jag såg så exempelvis om jag vill skoja med en medlem (om jag själv är medlem) är att be sajten skicka nya lösenord fast personen inte har bett om den för den generera ett lösenord innan den skickar så personen kan ju inte bara strunta i det eller??


Fast är bara ett förslag.
 

_________________
MVH
Cazz

"Men are pigs. Too bad we own everything."
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
PSN



Medlem i: 5938 dagar
Från: Norrtälje
Status: Offline



#561658
Inlägg Skrivet: 2008-03-02 21:48      Ämne: Citera

Skall tilläggas att jag har utökat scriptet så att man måste fylla i både korrekt användarnamn + email för att få ett nytt lösen.
 

_________________
//Per
Livet är oändligt!
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
Redaktören



Medlem i: 4402 dagar

Status: Offline



#562151
Inlägg Skrivet: 2008-03-04 15:35      Ämne: Citera

Har lite problem med mina ranker.

KOD:
1:
<?php
2:
if($_SESSION['sess_rank'] == "3")
3:
{
4:
echo "<li>Detta skrivs ut om du är admin</li>";
5:
 
6:
}
7:
 
8:
else {
9:
echo "<li>du e icke admin</li>";
10:
 
11:
}
12:
?>


Har skapat en tabell i db som heter rank och ändrat mig till 3. Tycker det borde funka?
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
Azreal
Administratör



Medlem i: 5182 dagar
Från: Uppsala, bor i Göteborg
Status: Offline



#562173
Inlägg Skrivet: 2008-03-04 16:19      Ämne: Citera

Du lär ju tilldela sessionen sess_rank med, jag ser inte att det görs nånstans i detta script.
 

_________________
Konsultation via PM, inte gratis.
Till toppen på sidan
Visa användarprofil Skicka privat meddelande Besök användarens hemsida
Redaktören



Medlem i: 4402 dagar

Status: Offline



#562175
Inlägg Skrivet: 2008-03-04 16:24      Ämne: Citera

Det blev kaos nu :S Smile

detta är db:
#
# Struktur för tabell `members`
#

CREATE TABLE members (
id int(11) NOT NULL auto_increment,
user varchar(30) NOT NULL default '',
pass varchar(32) NOT NULL default '',
rank int(11) NOT NULL default 1,
name varchar(50) NOT NULL default '',
email varchar(50) NOT NULL default '',
PRIMARY KEY (id)
) TYPE=MyISAM;

sen index.php
KOD:
1:
<?php
2:
session_start(); // Alltid överst på sidan
3:
 
4:
include "config.php"; // Databasanslutningen
5:
include "functions.php"; // Funktioner
6:
 
7:
// Inloggning
8:
if (isset($_POST['submit'])){
9:
 
10:
  $_POST = db_escape($_POST);
11:
 
12:
  $passwd = safepass($_POST['passwd']);
13:
  $sql = "SELECT id FROM members
14:
         WHERE user='{$_POST['user']}'
15:
         AND pass='$passwd'
16:
       ";
17:
  $result = mysql_query($sql);
18:
 
19:
  // Hittades inte användarnamn och lösenord
20:
  // skicka till formulär med felmeddelande
21:
  if (mysql_num_rows($result) == 0){
22:
    header("Location: index.php?badlogin=");
23:
    exit;
24:
  }
25:
 
26:
  // Sätt sessionen med unikt index
27:
  $_SESSION['sess_id'] = mysql_result($result, 0, 'id');
28:
  $_SESSION['sess_user'] = $_POST['user'];
29:
  header("Location: welcome.php");
30:
  exit;
31:
}
32:
 
33:
// Utloggning
34:
if (isset($_GET['logout'])){
35:
  session_unset();
36:
  session_destroy();
37:
  header("Location: index.php");
38:
  exit;
39:
}
40:
?>


Hur ska jag bära mig år för att kunna använda:
KOD:
1:
<?php $sql = "SELECT rank FROM members WHERE id = {$_SESSION['sess_id']}";
2:
$result = mysql_query($sql) or die(mysql_error());
3:
$rank = mysql_result($result, 0, 'rank');
4:
 
5:
if ($rank === 1)
6:
//  Vanlig användare
7:
echo 'Du är vanlig användare.';
8:
if ($rank === 2)
9:
// VIP
10:
echo 'Du är VIP-användare.';
11:
if ($rank === 3)
12:
// Admin
13:
echo 'Du är admin.'; ?>
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
Azreal
Administratör



Medlem i: 5182 dagar
Från: Uppsala, bor i Göteborg
Status: Offline



#562176
Inlägg Skrivet: 2008-03-04 16:29      Ämne: Citera

Jaha och vad är problemet?
 

_________________
Konsultation via PM, inte gratis.
Till toppen på sidan
Visa användarprofil Skicka privat meddelande Besök användarens hemsida
Visa tidigare inlägg:   
Skapa nytt inlägg   Svara på inlägget Gå till sida Föregående  1, 2, 3, 4, 5, 6, 7, 8, 9, 10  Nästa
PHPportalen Forum Index » Tips och Trix
Hoppa till:  
Du kan inte skapa nya inlägg i det här forumet
Du kan inte svara på inlägg i det här forumet
Du kan inte ändra dina inlägg i det här forumet
Du kan inte ta bort dina inlägg i det här forumet
Du kan inte rösta i det här forumet
Du kan inte bifoga filer i detta forum
Du kan inte ladda ner filer från detta forum
Kontakta oss på adressen: info@phpportalen.net
Webbplatsen bygger i grunden på phpBB © 2001, 2002 phpBB Group

Modifieringar har senare gjorts i systemet av PHPportalen
Sid och logotypdesign skapad av Daren Jularic