Jump to content
php.lv forumi

Aleksejs

Moderatori
  • Posts

    4,584
  • Joined

  • Last visited

  • Days Won

    1

Everything posted by Aleksejs

  1. Es arī ieteiktu pārtaisīt tā, lai darbotos ar register_globals off, jo tāds skripts darbosies arī vidē ar register_globals on, taču otrādāk, kā pats pamanīji, gan, nē.
  2. tas nozīmē, ka tādēļ, ka ir ieslēgta SAFE MODE ir ierobežots, kādās direktorijās tu drīksti rakstīt. Pamēģini to upload direktoriju nomainīt no: /var/www/html/ uz: /home/virtual/site/fst/var/www/html/
  3. Šeit viss ir pietiekami skaidri aprakstīts: http://lv.php.net/manual/en/features.file-upload.php
  4. <input name="jautajums[]" ... value="jā"> <input name="jautajums[]" ... value="nē"> <input name="jautajums[]" ... value="varbūt"> Rezultātā nosūtīsies masīvs: $_REQUEST['jautajums'][0] == "jā" $_REQUEST['jautajums'][1] == "nē" $_REQUEST['jautajums'][2] == "varbūt"
  5. Aleksejs

    Raksti

    Da Lokomotive ir megaumņiks. Atcerās 1-2 klases vielu par atšķirību starp cipariem un skaitļiem :P :D function lielums($katalogs){ return sizeof(scandir($katalogs))-2; //-2 tāpēc, ka scandir atdod arī "." un ".." }
  6. pieraksti vēl klāt else. if(isset($_REQUEST['a'])){ $column = ($_REQUEST['a']); } else { $column = 'bezkolonnaam' //tobiš, kas jādara ja nav kolonnu }
  7. Jā, ir iespējams. Piemēram kaut vai tādā veidā, ka atrodoties vienā tīkla segmentā, ir iespējams redzēt pilnīgi visu segmenta trafiku - tas nozīmē, ka, ja kanāls nav šifrēts, negatīvais tēls var redzēt visu, kas bija jāredz tikai pozitīvajam tēlam. Nākošais (par šo gan neesmu 100% pārliecināts) - serveris nosaka to, kurai sesijai pieder konkrētais http pieprasījums nolasot klienta cookie (vai URL) uzstādīto sesijas id. Tātad, iespējams, ja negatīvais tēls spēj kaut kādā veidā uzzināt pozitīvā tēla cepumiņu (piemēram, pieslēdzoties caur lokālo tīklu pozitīvā tēla datoram un atrodot temporary failos vajadzīgo cepumiņu), tad viņš spēj arī izlikties par pozitīvo tēlu un iegūt slepenos datus. 100% neesmu pārliecināts, vai negatīvais tēls varēs to pielietot no citas IP adreses, tomēr uzstājīgs negatīvais tēls varētu arī pacensties un izmantojot metodes, kuras ir "out of scope of this conversation" panākt, lai viņa pieprasījumi izskatītos serverim kā no pozitīvā tēla IP. Riska samazināšanas metodes: Izmantot SSL (labāk SSL nevis izdomāt savas metodes, jo noteikti tajās būs daudz caurumu); Sesiju piesaistīt pie visa, ko vien var izmantot piesaistīšanai un pārtraukt tikko pamanītas kādas izmaiņas. Papildinājums: Ierakstot Googlē šādus netriviālus ;) vārdus: php session security var atrast daudzus rakstus par šo problēmu. http://www.webkreator.com/php/configuratio...n-security.html Viena no lielākajām problēmām, kuru nebiju pamanījis ir fakts, ka uz visādiem free-hosting serveriem visbiežāk sesiju dati tiek glabāti vienā un tajā pašā vietā un netiek nekādā veidā aizsargāti savā starpā starp lietotājiem- tādēļ negatīvais tēls potenciāli varētu nolasīt sesijas id no turienes. Vēl viena metode, kā samazināt risku, ir izveidot drošākas sesijas datu izveides, pārbaudes, iznīcināšanas funkcijas, nekā tas ir by default realizēts PHP. http://lv.php.net/manual/en/function.sessi...ave-handler.php Vēl viens papildinājums: http://www.sitepoint.com/blog-post-view.php?id=156260 Konkrēti šis raksts: http://www.acros.si/papers/session_fixation.pdf Ja lapa, kurā tiek izmantotas sesijas, uzsāk sesiju jau pie lapas atvēršnas un izmanto šo pašu sesiju (sesijas numuru) arī pēc autentificēšanās procesa - negatīvais tēls var mēģināt piespiest pozitīvo tēlu ieiet ar negatīvajam tēlam jau iepriekš zināmu sesijas id. Sīkāk par to kā to var izdarīt - lasi rakstu. Lai to neļautu, obligāti pie autentificēšanās ir jānobeidz iepriekšējā sesija un jāizveido jauna.
  8. Viss ir pareizi, vienkārši skripts darbojās par ilgu, nekā ļauj tava php.ini konfigurācija
  9. Gandrīz ;) ob_start(); for($i=0; $i<9999999;$i++) { echo $i."<br />"; ob_flush(); } //end for ob_end_flush();
  10. Ar PHP to dara ieslēdzot Output Buffering, un katras iterācijas galā veicot flush buferim. Vēl viena nianse - datiem ir jābūt pietiekamiem, lai pārlūks varētu tos attēlot (render). T.i. daži browseri, cik zinu, piemēram, neattēlo tabulu, kamēr nav saņemti visi tabulas dati, ja iepriekš nav aprakstīta tabulas struktūra (cik būs kolonnu). http://lv.php.net/manual/en/ref.outcontrol.php
  11. Paroli nomaina ieejot iekš phpmyadmin un galvenajā lapā nospiežot change password. Tālāk labo config.inc.php failu.
  12. Domāju, ka tomēr lielākā daļa iekš DB glabā tikai ceļu uz bildi, nevis pašu bildi.
  13. uzliec lietotājam root paroli un izmaini PHPmyadmin konfigurāciju. lai nepieslēdzas automātiski, bet gamn prasa ievadīt šo paroli.
  14. $_POST['jaut'][$x] - ja tev jautājumi tiek padoti kāmasīvs.... Ja tie tiek padoti, kā jaut1=aa&jaut2=bb&...&jautN=ii, tad $_POST['jaut' . $x ]
  15. Nu nav jau obligaati nepareizi jaarealizee ;)
  16. Varbūt uzliec atpakaļ error reportingu ;) Neiedziļinoties drošības problēmās, kuras rodas šīs rindiņas dēļ (include ($page . ".php");), varbūt uzraksti tā, lai darbotos bez register_globals??? <?php if (! isset($_REQUEST['page'])) {$page='main';} else { $page = $_REQUEST['page']; } include ('saakums.php'); include ($page.".php"); include ('beigas.php'); ?>
  17. http://lv.php.net/manual/en/function.image...edrectangle.php
  18. Protams. Tieši tāpēc es izmantoju vārdu "apgrūtināt" nevis "novērst" ;)
  19. Bildes tak ir jātaisa atsevišķi no html'a!!! Ja vien nēsi pārlasījies šo rakstu (http://hackers.lv/?id=4429), tad neredzu iespēju, kā tu varētu ar vienu skriptu izvadīt gan biildes, gan htmlu. Un vai ir prognozējams, kāda ir $im vērtība pēc imagedestroy? imagepng($im); imagedestroy($im); return $im;
  20. Šitā? <script LANGUAGE="JavaScript"> function press(poga) { if (poga.value == "ir") { poga.value = "nav";} else { poga.value = "ir";} } </SCRIPT> <form name="forma" method="post"> <input type = "button" name = "poga1" value="ir" onclick = "press(this)" /> <input type = "button" name = "poga2" value="ir" onclick = "press(this)" /> <input type = "button" name = "poga3" value="ir" onclick = "press(this)" /> <input type = "button" name = "poga4" value="ir" onclick = "press(this)" /> <input type = "button" name = "poga5" value="ir" onclick = "press(this)" /> </form>
  21. Un kas notiks, ja cilvēks A atver lapu 14:00, cilvēks B atver lapu 14:01, cilvēks B nosūta komentāru 14:02, cilvēks A mēģina nosūtīt komentāru 14:03 un aplaužās :) Vēlviens variants. Izmanto sesijas - katram apmeklētājam atverot komentāru lapu tiek noģenerēts unikāls komentēšanas ID, kuru piereģistrē kā sesijas mainīgo un kurš ir jānosūta kopā ar komentāru. Komentārs tiek pieņemts tikai tad, ja ir atsūtīts derīgs komentēšanas ID. Ja komentārs tiek pieņemts, tiek ģenerēts jauns komentēšanas ID, ar izrietošajām sekām.
  22. Vari uztaisīt kaut ko līdzīgu LMT īsziņu autorizācijas kodam ar bildītēm (ja nebaidies palikt bez komentētājiem ;) ) - tam vajadzētu apgrūtināt automatizētas postošanas iespēju...
  23. Ļaut komentārus ievadīt tikai autorizētiem lietotājiem ;) Ja problēma ir tikai tajā apstāklī, lai nevarētu nodot caur adresi (respektīvi caur GET) komentārus, tad izveido, lai pretī ņem tikai POST mainīgos. Ievēro, ka ļaunie hakeri var arī uztaisīt skriptu, kas padod caur POST ;)
  24. Vai arī ar GD, kad taisa vaļā lielas bildes...
×
×
  • Create New...