Autor Zpráva
Norbert Pelc
Profil
Ahoj,
mám kód databaze dělaný tabulkama.
Mohl by mi to někdo přepsat, ať je to čisté a neopsahuje to zbytečnosti?????

mysql

Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 17 to server version: 4.1.10a-nt

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql>


CREATE TABLE `users` (
`users_id` INT( 11 ) NOT NULL AUTO_INCREMENT ,
`login` VARCHAR( 25 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,
`password` VARCHAR( 64 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,
PRIMARY KEY ( `users_id` )
)

insert into users login=****
insert into users password=****

insert into users login=***
insert into users password=****
djlj
Profil
Cože?
Norbert Pelc
Profil
No nechci aby se do dalo ohakovat.
Prostě přepsat nějak čitelněji
djlj
Profil
Na tomhle není co hackovat.
krteczek
Profil
vytvoření tabulky pro usery
CREATE TABLE `users` (
`users_id` INT( 11 ) NOT NULL AUTO_INCREMENT ,
`login` VARCHAR( 25 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,
`password` VARCHAR( 40 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,
PRIMARY KEY ( `users_id` )
)

//dotaz pro přidání usera do db
$dotaz = "INSERT INTO users (login, password) values ('" . addslashes(jmeno) . "', '" . sha1(heslo) . "')";

krteczek
Joker
Profil
Norbert Pelc
Ta tabulka je správně, ono na jedné tabulce o třech sloupcích není skoro co zkazit. Jen ten insert bych pak dělal jak píše krteczek


V souvislosti s hacknutím tabulky je spíš důležitější si ohlídat vstupy, tj.:
- vkládání nových záznamů do tabulky, registrace nových uživatelů
- přihlašovací formulář

Základní poučka bezpečnosti ve skriptech: Všechny vstupy od uživatele jsou považovány za nebezpečné.
Zásadně je třeba předpokládat, že data od uživatele mohou v důsledku úmyslné či neúmyslné chyby mít nesprávný formát a že veškeré kontroly na straně klienta je možné obejít. Takže využívat například funkce intval(), addslashes(), htmlspecialchars(), strip_tags() a podobně.
thingwath
Profil
No já bych maximálně nemotal charset na jednotlivé sloupce, ale nastavil ho až pro celou databázi pokud ne rovnou pro celý db stroj.
Toto téma je uzamčeno. Odpověď nelze zaslat.