Autor | Zpráva | ||
---|---|---|---|
r0me0 Profil |
#1 · Zasláno: 21. 5. 2008, 22:21:38
Zdravím, mám problém, který se mi stal už podruhé. Zničeho nic se mi smazalo asi 100 řádků v jedné tabulce. Psal jsem borcům na hosting a ti mi napsali, že:
a) na webu se nachazi nejaky zaskodnicky skript ktery muze databaze mazat b) pristupove hesla mohly byt prozrazeny c) v php je nekde chyba ktera muze mazat databazi v urcitem pripade Podle mě to heslem nebude, to by ten někdo smazal celou databázi, nebo aspoň celou tabulku. Nedovedu si představit, že bych měl takovou chybu v php, že by mi to mazalo 95% obsahu tabulky a ještě navíc když s tím webem nikdo nic nedělal. Navíc se mi tam objevily nějaké podivné otazníky místo těch červených křížů, které slouží ke smazání jednoho řádku tabulky ( http://img230.imageshack.us/my.php?image=dbwe5.jpg ) to prý může být tím, že používám nějaké starší příkazy (používám mysql_query, změním to na mysqli ) Takže se chci zeptat, jestli se to už někomu nestalo, nebo popř. co s tím záškodnickým skriptem? Smazat celý obsah FTP a nahrát to tam znova a změnit hesla? Díky za pomoc. |
||
WertriK Profil |
#2 · Zasláno: 22. 5. 2008, 00:12:14
- změnil bych hesla - za to nic nedáš (snad)
- pokud to nezabere - je chyba ve scriptu nebo na straně hostingu - zkusil bych script nahrát na jiný server a to rozhodne o tom kde je zakopaný hund - pro informaci tohle provozuješ na jakém hostingu ? PS: Mysql_Query() je starší příkaz ? Neumím si představit že by se měl někdy tento příkaz zrušit, možná za hodně dlouho. |
||
nightfish Profil |
#3 · Zasláno: 22. 5. 2008, 08:50:03 · Upravil/a: nightfish
ad místo křížků otazníky - imho nemáš v tabulce definovaný primární klíč...
ad zbytek - podívej se na všechna "DELETE" ve všech skriptech - buď tam někde bude chyba a nebo je problém v něčem jiném |
||
Kajman_ Profil * |
#4 · Zasláno: 22. 5. 2008, 08:55:45
A zvláštní pozornost věnovat sql dotazům, kde se maže z té tabulky... kouknout, jestli je ošetřené, aby mohl mazat jen ten, co k tomu má oprávnění a zkontrolovat, zda je to ošetřené na sql injection.
|
||
krteczek Profil |
#5 · Zasláno: 22. 5. 2008, 13:34:15 · Upravil/a: krteczek
to bude nejspíš klasika:
//používáte: $dotaz = "SELECT * FROM tabulka WHERE id='$_GET[sloupec]'"; //místo lepšího (s přetypováním na integer, pokud je posíláno id položky) $dotaz = "SELECT * FROM tabulka WHERE id = " . (int)$_GET[sloupec] . " "; //nebo,pokud má být vstupem třeba text tak použít funkci k tomu určenou (a vyple magic_quotes_gpc!): //předpokládám že už je vytvořeno připojení k db a také nastavená kodová stránka pro toto připojení $text = mysql_real_escape_string($_POST['text']); $nazev = mysql_real_escape_string($_POST['nazev']); $dotaz = "INSERT INTO `tabulka` (`nazev`,`text`) VALUES ('" . $nazev . "', '" . $textUloz . "')"; |
||
Časová prodleva: 16 let
|
0