Skocz do zawartości

  • Zaloguj korzystając z Facebooka Zaloguj korzystając z Twittera Zaloguj przez Steam Zaloguj poprzez Google      Logowanie »   
  • Rejestracja

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.

  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Zdjęcie
PHP

txtAM - Txt Account Manager

php

  • Nie możesz napisać tematu
  • Zaloguj się, aby dodać odpowiedź
8 odpowiedzi w tym temacie

#1 Gh0st

    :)

  • Power User

Reputacja: 846
Czempion

  • Postów:920
  • GG:
  • Imię:Tomek
  • Lokalizacja:Rabka-Zdrój
Offline

Napisano 05.07.2012 14:47

WItam :)
Dla chętnych tym którym "znudziło" się korzystanie z mysql pod jakieś małe projekty. Prosty system logowania/rejestracji na plikach ( Klasa ).


<?php @session_start();
/**
* 1.0v Beta
* txtAM - txt account manager
*
* skrypt oparty na plikach.
*/
class txtAM
{
var $root_folder = './account/';
var $time = 0;
var $data = array('login'=>0,
'password'=>1,
'email'=>2,
'register_time'=>3);
var $salt = "@!$%^&*()FVCDX";

function txtAM(){
$this->time = time();
}

function delete($login)
{
$account_dir = $this->account_dir($login);

if( !file_exists($account_dir) )
{
print "This user does not exist ...";
return false;
}

@unlink($account_dir);

}

function login($login, $password)
{
$user = $this->account_dir($login);
if( !file_exists($user) )
{
print "incorrect data";
return false;
}

$line = $this->readLine($user);
$pass = $line[1];

if( md5($password) != $pass )
{
print "incorrect data";
return false;
}

$_SESSION['user'] = $line;
}

function create_account($login, $password, $email)
{

if( empty($login) or empty($password) or empty($email) )
{
print "Not given username, password or e-mail";
return false;
}

if( !strstr($email, '@') )
{
print "The given e-mail is invalid";
return false;
}

$account_dir = $this->account_dir($login);

if( file_exists($account_dir) )
{
print "This username is already taken";
return false;
}

$file = $login . "\n";
$file .= md5($password) . "\n";
$file .= $email . "\n";
$file .= $this->time;
file_put_contents($account_dir, $file);
print "Your account has been successfully established";

return true;
}

function getInfo( $info ){
return $_SESSION['user'][ $this->data[$info] ];
}

function account_dir($login)
{
$len = strlen($login);
for($i=0; $i<$len; $i++){
$file .= ord($login[$i]);
}
return $this->root_folder.$file.'.'.md5($login.$this->salt);
}

function readLine($user){
return explode("\n", file_get_contents($user));
}
}


var $salt		= "@!$%^&*()FVCDX";

ten salt należy sobie zmienić na dowolny ciąg znaków, każdy powinien to zrobić ponieważ zmniejsza to szanse na włamanie się na konto.


Funkcje:
$am->login($login, $password)

Logujemy się na konto podanymi danymi, login $login i hasło $password

$am->create_account($login, $password, $email)

tworzymy konto

$am->delete($login)

usuwamy konto

$am->getInfo($info)

Pobieramy informacje dotyczące naszego konta na którym aktualnie się znajdujemy...
typy zmiennej $info są następujące:
login, password, email, register_time
Do poprawnego działania, musimy mieć na serwerze folder "account" lub inny folder, nazwę można zmienić w:
var $root_folder



Ktoś ma pomysł jaką funkcje jeszcze można dodać? pisać w temacie... :)

Użytkownik Gh0st edytował ten post 07.07.2012 15:06

  • +
  • -
  • 1

#2 G[o]Q

    I'm G[o]Q

  • Przyjaciel

Reputacja: 1339
Godlike

  • Postów:3556
  • Steam:steam
  • Imię:Krzysiek
  • Lokalizacja:C: / program Files / Valve / Cstrike / G[o]Q.dem
Offline

Napisano 05.07.2012 15:25

czy pojęcie "baza danych na plikach" nie odnosi sie do struktury mysql zapisanej w txt ?? tzn ze kazdy plik to tak jakby tabela a kazdy folder to baza ?? u ciebie tworzy sie mnóstwo plików zamiast tworzyć jeden i w nim wszystko zapisywać
  • +
  • -
  • 0
Manual ponad wszystko, konsola ponad manual :D :&

Chcesz wysłać do mnie PW ? użyj nazwy GoQ zamiast G[o]Q
Chcesz Kupić moduł płatności via Pukawka,Tserwery, Gamesol, Zabijaka do mojego sklepu? napisz PW cena to tylko 10 zł/sztuka

GG:6022845 (nie pomagam za free osobom ponizej rangi MoD) :D

#3 Gh0st

    :)

  • Autor tematu
  • Power User

Reputacja: 846
Czempion

  • Postów:920
  • GG:
  • Imię:Tomek
  • Lokalizacja:Rabka-Zdrój
Offline

Napisano 05.07.2012 15:35

Tutaj nie chodziło o to żeby zrobić drugą bazę danych na plikach bo tego jest mnóstwo i jeszcze trochę. pliki się tworzą bo każdy oddzielny plik to inny użytkownik a żeby zrobić wszystko w jedynym pliku, to trochę roboty jest... poza tym taka forma jaka jest teraz, wydaje mi się że jest bardziej zrozumiała dla kogoś kto nie miał większej przyjemności pracować w PHP
  • +
  • -
  • 1

#4 l3szcz

    Wszechwidzący

  • Użytkownik

Reputacja: 33
Życzliwy

  • Postów:272
  • GG:
  • Imię:Tomek
  • Lokalizacja:Pomorze
Offline

Napisano 08.07.2012 19:12

Teraz możesz ułatwić każdemu noob hackerowi włamanie sie komuś do użytkowników, jeżeli wykorzystuje ten skrypt.
  • +
  • -
  • 0
Zanim napiszesz wiedz, że nie toleruje dzieci Neo i pomagam odpłatnie ;]

Dołączona grafika

Pisząc do mnie "Cześć, Hej, Jesteś" bez podania informacji o tym czego dokładnie chcesz - skazujesz siebie na ignorowanie! :giggle:

#5 Gh0st

    :)

  • Autor tematu
  • Power User

Reputacja: 846
Czempion

  • Postów:920
  • GG:
  • Imię:Tomek
  • Lokalizacja:Rabka-Zdrój
Offline

Napisano 08.07.2012 19:30

Ustaw sobie inny
var $salt
i szanse na to że ktoś poprawnie "zgadnie" link są bardzo znikome ...
  • +
  • -
  • 1

#6 G[o]Q

    I'm G[o]Q

  • Przyjaciel

Reputacja: 1339
Godlike

  • Postów:3556
  • Steam:steam
  • Imię:Krzysiek
  • Lokalizacja:C: / program Files / Valve / Cstrike / G[o]Q.dem
Offline

Napisano 08.07.2012 20:54

Salt ??

przeciez samo md5 juz zmniejsza tą szanse

zeby to zabezpieczyć trzeba dobrze dobrać uprawnienia i mieć odpowiednio skonfigurowany htaccess
  • +
  • -
  • 0
Manual ponad wszystko, konsola ponad manual :D :&

Chcesz wysłać do mnie PW ? użyj nazwy GoQ zamiast G[o]Q
Chcesz Kupić moduł płatności via Pukawka,Tserwery, Gamesol, Zabijaka do mojego sklepu? napisz PW cena to tylko 10 zł/sztuka

GG:6022845 (nie pomagam za free osobom ponizej rangi MoD) :D

#7 l3szcz

    Wszechwidzący

  • Użytkownik

Reputacja: 33
Życzliwy

  • Postów:272
  • GG:
  • Imię:Tomek
  • Lokalizacja:Pomorze
Offline

Napisano 08.07.2012 23:31

Tu mnie macie :)
Jednak racja :]
A masz do tego formularz? ;]
  • +
  • -
  • 0
Zanim napiszesz wiedz, że nie toleruje dzieci Neo i pomagam odpłatnie ;]

Dołączona grafika

Pisząc do mnie "Cześć, Hej, Jesteś" bez podania informacji o tym czego dokładnie chcesz - skazujesz siebie na ignorowanie! :giggle:

#8 PimP517

    Zaawansowany

  • Zbanowany

Reputacja: 52
Pomocny

  • Postów:129
  • Lokalizacja: / home / pimp517
Offline

Napisano 08.07.2012 23:48

oO to jeszcze epoka kamienia łupanego logowanie na plikach :) prosty dir skaner i jest lista plików nawet z -Indexes w .htaccess. Już widziałem parę md5 crackerów online w których można dodawać własny salt.

Zdejmin te warny lub zablokuj mi konto!!! WCM!!!


#9 Gh0st

    :)

  • Autor tematu
  • Power User

Reputacja: 846
Czempion

  • Postów:920
  • GG:
  • Imię:Tomek
  • Lokalizacja:Rabka-Zdrój
Offline

Napisano 09.07.2012 08:55

których można dodawać własny salt.

trzeba ten salt najpierw znać...
  • +
  • -
  • 1





Również z jednym lub większą ilością słów kluczowych: php

Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych