Jump to content
php.lv forumi

Recommended Posts

Posted

Labdien! Tātad es tagad mēģinu uztaisīt tā lai manā mājas lappā vis darbotos ar mysql palīdzību, tapēc gribētu pajautāt var būt kāds kas ar to jau ir nodarbojies varēt pastāstīt par kādām izplatītākajām kļūdām un virpār par mysql drošību, lai nevarētu kāds vienkārši uzlaust manu datu bāzi.

Pagaidām cik meklēju atradu tikai par funkcijas mysql_real_escape_string() nozīmīgumu, bet gan jau ir vel kkas par ko varēt man pastāstīt nedaudz :)

Posted

Filtrēt tas būtu ar mysql_real_escape_string vai kā tu to domāj ? :^)

Un pag paskaidro lūdzu to datu validēšanu - ko tas īsti nozīmē ?

 

Un vel kāds jautājums - tā mysql_real_escape_string vai tad nav tas pats kas htmlspecialchars() ?

Posted

Datu validēšana nozīmē to, ka pārbaudi vai dati, ko praktiski un tīri teorētiski var padot lietotājs - ir ar tādu saturu, kādu esi vēlējies saņemt Tu!

Piemēram vai lauks, kurā jāievada daudzums - satur tikai ciparus. Vai emails ir korekts vai login lauks un passworda laukos kāds nav paslēpis kādu injekciju. Ja lieto kūkijus, pārbaudi vai to saturs atbilst tevis rakstītajam - padot jau var sazin ko. e.t.c. Ko pārbaudīt ir vienmēr. Kaut ko aizmirstot vari savu projektu padarīt potenciāli ievainojamu. Var jau gadīties, ka kaut ko nepārbaudot, to nemaz nevar izmantot uzbrukumam, bet var arī gadīties ka var.

Posted

Filtrēt un validēt nozīmē pārbaudīt vai ienākošie dati atbilst vajadzīgajam formātam. Ja, piemēram, tu veido skriptu, kas dzēšs ierakstu pēc ID, kas vienmēr būs cipars, tad noteikti pārbaudi vai padotā vērtība būs cipars. Es to darītu kaut kā šādi:

 

if(!is_numeric($_POST['id'])) {
die();
}

$id = (int) $_POST['id'];

// Kverijs

 

Palasi manuālī, ko dara htmlspecialchars un ko mysql_real_escape_string.

Posted

Es te apskatot google atradu vel tādu funkciju kā sqlesc() tieši prekš MYSQL it kā tikai lieta tāda ka nekur nevaru atrast aprakstu par viņu - var `but kāds zina kur var palasīt kko sīkāk vai arī pats pateikt ko īsti viņa dara ?

Posted

Es jau neteicu ka viņam kādas vainas :) Tikai cik saportu šī ar kkādi pasargā no hakeru uzbrukumiem - tikai nevar atrast sīkāku aprakstu un pielietojumu pareizu

Posted (edited)

šitais palīdzēs pret caur URL nodotajām sql injekcijām (varbūt nevisām)

 

 

 

if (get_magic_quotes_gpc())
$_SERVER['QUERY_STRING'] = stripslashes($_SERVER['QUERY_STRING']);
$query = urldecode($_SERVER['QUERY_STRING']);

$rules = array();
$rules[] = "|drop[[:space:]]+database|table|column|i";
$rules[] = "|delete[[:space:]]+from|i";
$rules[] = "|insert[[:space:]]+into|i";
$rules[] = "|update.+set.+=|i";
$rules[] = "|union.+select|i";
$rules[] = "|alter[[:space:]]+table|i";
$rules[] = "|into[[:space:]]+outfile|i";
$rules[] = "|load[[:space:]]+data|i";
$rules[] = "|select.+from|i";
$rules[] = "|left|inner|outer|cross|natural[[:space:]]+join|i";
$rules[] = "|straight_join|i";

foreach($rules as $rule) {
 if(preg_match($rule, $query)) die();
}

 

Zagts no hackers.lv

Edited by 4e4en
Posted

Kāda jēga neatļaut kautkādus sql keywordus postēt? Es varbūt komentārā gribu kautko gudru par sql pateikt, a tur die()... Vienkāršāk taču ir noeskeipot pēdiņas, vai lietot mysqli_stmt_bind_param veida fjas.

Posted

4e4en, šādas metodes reklamēt nevajag. Iekš hackers.lv šis bija nopublicēts tikai kā ieteikums kā varētu mēģināt uzlabot tādu aplikāciju drošību, kas ir pārāk komplicētas (pārāk lielas), lai tām ietu cauri un pārbaudītu vai visur ir noeeskeipoti dati.

Posted

Hmm bet tad kas sanāk ka pietiek lietot tikai mysql_real_escape_string lai mans mysql būtu drošs ? Kaut kā īsti neticās :)

×
×
  • Create New...