Vecteevs Posted January 22, 2011 Author Report Share Posted January 22, 2011 Visdrīzāk jau jāskatās, vai kaut kur nenolasa pliku config failu ar datu bāzes host, user un password datiem. saliku htaccess failus visur tam takā ka nevajadzētu būt.. Quote Link to comment Share on other sites More sharing options...
ezis Posted January 22, 2011 Report Share Posted January 22, 2011 protams, GET mainīgajiem kur ir cipari panjemu ar (int) rekur piemērs kā man izskatās visi qveriji: $event = htmlspecialchars($_GET['event']); $id = (int)$_GET['id']; if ($event == "confirm") { $query = sprintf("UPDATE lauks SET completed='yes' WHERE id='$id'") or die(mysql_error()); $result = mysql_query($query); header("Location: view.php?id=$id"); exit(); Tas sprintf Tev tur neko nedod. ko tad teica Tavi logfaili? Quote Link to comment Share on other sites More sharing options...
F3llony Posted January 23, 2011 Report Share Posted January 23, 2011 1: visiem mainīgajiem, kas tiek ievietoti SQL obligāti jāveic mysql_real_escape_string. OBLIGĀTI! Visā skriptā! 2: lasi logfailus, uzzini no kura skripta tieši tiek labota tava db. 3: ja nevari atrast, izpildi 1. un 2. punktu. 4: nomaini SQL paroli. Standartā vismaz 12 simboli- lielie, mazie burti, skaitļi. 5: mysql paroles neglabā .txt failā vai jebkādā citā failā, ko var atvērt pārlūkā. 6: Izpildi 2. punktu. Šoreiz kārtīgi. 7: Es teicu kārtīgi. Katru rindiņu. Quote Link to comment Share on other sites More sharing options...
codez Posted January 23, 2011 Report Share Posted January 23, 2011 ja mainīgais tiek typecast-ots uz int, tad viņu var teorētiski likt arī bez real_escape, bet praktiski protams ir labāk visur likt kā drošības slāni. Quote Link to comment Share on other sites More sharing options...
Vecteevs Posted January 23, 2011 Author Report Share Posted January 23, 2011 saliku visu pēc ieteikumiem, jāskatās kas notiks. Quote Link to comment Share on other sites More sharing options...
daGrevis Posted January 23, 2011 Report Share Posted January 23, 2011 Kāpēc, F3llony, jānoslogo lieki serveris? $username = mysql_real_escape_sring( $_POST['username'] ); $password = mysql_real_escape_sring( $_POST['password'] ); $time = time(); // Register globals is turned off. mysql_query(" INSERT INTO `users` ( `username`,`password`, time` ) VALUES ( '{$username}', '{$password}', '{$time}' ) LIMIT 1 ") or exit; Quote Link to comment Share on other sites More sharing options...
Vecteevs Posted January 23, 2011 Author Report Share Posted January 23, 2011 mysql_query(" INSERT INTO `users` ( `username`,`password`, time` ) VALUES ( '{$username}', '{$password}', '{$time}' ) LIMIT 1 ") or exit;[/code] tās { } iekaviņas jāliek? Es parasti liku tikai ' ' Quote Link to comment Share on other sites More sharing options...
daGrevis Posted January 23, 2011 Report Share Posted January 23, 2011 (edited) Nē, nav jāliek. Bet var likt. Būtu jāliek tādā gadījumā... echo "<p>{$array['name']}</p>"; Edited January 23, 2011 by daGrevis Quote Link to comment Share on other sites More sharing options...
F3llony Posted January 23, 2011 Report Share Posted January 23, 2011 ja mainīgais tiek typecast-ots uz int, tad viņu var teorētiski likt arī bez real_escape, bet praktiski protams ir labāk visur likt kā drošības slāni. teorētiski arī ftp paroli var uzlikt 1234. tas nenozīmē, ka to vajag darīt Quote Link to comment Share on other sites More sharing options...
codez Posted January 24, 2011 Report Share Posted January 24, 2011 teorētiski arī ftp paroli var uzlikt 1234. tas nenozīmē, ka to vajag darīt Tur jau tā lieta, ka runa ir par konkrēto gadījumu - par gadījumu, ka kaut kas tiek lauzts. Un, ja user inputs ir int vērtība un tiek typecast-ota, tad tā nav tā vieta, kurā tiek lauzts, ievietojot sql injekciju, tāpēc tev šaja sakarā par to nav taisnība. Quote Link to comment Share on other sites More sharing options...
mad182 Posted January 24, 2011 Report Share Posted January 24, 2011 (edited) Nu ja tas mainīgais tiek tipecastots ar (int) vai intval(), tad manuprāt nav galīgi nekādas vajadzības viņu vēl eskeipot, ja vien pa vidam starp variabļa izveidošanu un izmantošanu kverijā, netiek veiktas vēl velns-zina-kādas darbības ar to. Iekš int tu nu nekādi SQL injekciju neierakstīsi. Edited January 24, 2011 by mad182 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.