sviesc Posted June 12, 2003 Report Share Posted June 12, 2003 vajadzetu scriptu kas automatiski ievietotu konkteetu failu kautvai ar <code><font color="#000000"> include()</font> </code> f-ciju :blink: Link to comment Share on other sites More sharing options...
tamster Posted June 12, 2003 Report Share Posted June 12, 2003 <code><font color="#000000"> <font color="#0000CC"><? </font><font color="#006600">include(</font><font color="#CC0000">"kautkaadsfails.txt"</font><font color="#006600">); </font><font color="#0000CC">?></font> </font> </code> :) vienkāršākais veids lai iekļautu dažādus failus atkarībā no padotā parametra un ja failu nav īpaši daudz ir: <code><font color="#000000"> <font color="#0000CC"><? </font><font color="#006600">if(</font><font color="#0000CC">$lapa</font><font color="#006600">==</font><font color="#CC0000">'ziepes'</font><font color="#006600">){ include(</font><font color="#CC0000">"ziepes.htm"</font><font color="#006600">); }else if(</font><font color="#0000CC">$lapa</font><font color="#006600">==</font><font color="#CC0000">'burka'</font><font color="#006600">){ include(</font><font color="#CC0000">"burka.txt"</font><font color="#006600">); }else{ include(</font><font color="#CC0000">"sakums.inc"</font><font color="#006600">); } </font><font color="#0000CC">?></font> </font> </code> Ja failu ir daudz, tad ir vieglāk padot faila vārdu, un iekļaujamos failus glabāt vienā dirā tā lai nevar iekļaut citus (neatļautos) failus. Ceru ka es pareizi sapratu, ko tu gribi :) Link to comment Share on other sites More sharing options...
Venom Posted June 12, 2003 Report Share Posted June 12, 2003 Tikai piezīmei: Un tad nāks Briesmīgs Hakeris un sacīs: ieincklūdo man servera/lapas konfigurāciju vai parādi lapas izejkodu. Ja tiešām vēlies rādīt lapas ar includu, netaisi tādas glupības, ka var ieenklūdot kādu index.php&include=tāds_un_tāds.html. Vai nu glabā tos failu nosaukumus masīvā, un čeko, if (in_array($_GET['include'],$atlautie_faili)), vai nu vismaz pārbaudi extention (.php, .jpg utt), nodod parametru kā masīva indexu: $atlautie_faili=array('start'=>'../var/pub/index.html','end'=>'etc/usr/end.php','one.txt','two.txt'); un tad index.php?include=start || index.php?include=1. Pirms includa liec @ zīmi: @include_once('kāds.fails.kas.varētu.nebūt.atrodams.vai.gļukains.pēc.būtības'); Nu un vispār par include nodošanu varētu daudz nodziedāt. P.S. ja izmanto tamstera metodi, tad labāk izmanto: switch($include) { case 'param': include('šo'); break; case 'param1': include('šo1'); break; case 'param2': include('šo2'); break; case 'param3': include('šo3'); break; default 'tādas.laps.nav.txt'; } utml Link to comment Share on other sites More sharing options...
tamster Posted June 12, 2003 Report Share Posted June 12, 2003 Tikai piezīmei: Un tad nāks Briesmīgs Hakeris un sacīs: ieincklūdo man servera/lapas konfigurāciju vai parādi lapas izejkodu.Tāpēc jau saku ka jāglabā atsevišķā dirā un pie includošanas jāpārbauda uz ../ " un tml. nesmukumu eksistenci P.S. ja izmanto tamstera metodi, tad labāk izmanto:switch($include) { ... Principā jā... ar šito biki smukāk&ērtāk :) Link to comment Share on other sites More sharing options...
CryRat Posted June 14, 2003 Report Share Posted June 14, 2003 Tikai piezīmei: Un tad nāks Briesmīgs Hakeris un sacīs: ieincklūdo man servera/lapas konfigurāciju vai parādi lapas izejkodu. kaut ko nesapratu... ka tas ir "sacīs: ieincklūdo man" ka tas "Briesmīgs Hakeris" var izveleties ko includot ? ja man kods ir <code><font color="#000000"> <font color="#0000CC"><? </font><font color="#006600">include(</font><font color="#CC0000">"header.php"</font><font color="#006600">); ... </font><font color="#0000CC">?></font> </font> </code> ka kads to "header.php" var nomainit pret kaut ko citu ? Link to comment Share on other sites More sharing options...
tamster Posted June 14, 2003 Report Share Posted June 14, 2003 ka kads to "header.php" var nomainit pret kaut ko citu ? Šādā gadījumā neko nevarēs nomainīt, bet ja tev includojamais fails tiek nodots no lapas uz lapu ar mainīgo piem.: http://blabla.com/?file=news.php un fails uzreiz iekļaujās (bez pārbaudēm) <code><font color="#000000"> <font color="#0000CC"><? </font><font color="#006600">include(</font><font color="#CC0000">"$file"</font><font color="#006600">); </font><font color="#0000CC">?></font> </font> </code> tad principā lietotājs jeb ļaunais hakeris var iekļaut jebko... Link to comment Share on other sites More sharing options...
jannis Posted June 15, 2003 Report Share Posted June 15, 2003 ok, shis buutu skaidrs ;) bet kas veel buutu jaazin, lai nevareetu kaads cits izveidot exploitu? Link to comment Share on other sites More sharing options...
Venom Posted June 15, 2003 Report Share Posted June 15, 2003 Nu jamajā gadījumā, varētu būt jāskatās kādā veidā tika nodots parametrs, piem. ja tas ir jāizvēlas no <select>, tad tas varētu būt nodots caur $_GET, vai $_POST formām (sk. attiecīgi print_r($_GET); un print_r($_POST); kas tev katrā veidā "iet" iekš lapas) un tavas lapas refereri (sk. print_r($_SERVER);) - jebšu tas padots no linka tavā lapā. Ja tu uzskati par Ok, ja lietotājs pats ievada adreses laukā "index.php?param=taram", un parametri tev glabājas masīvā, jāparūpējas par ši masīva nosaukuma neatpazīstamību (pārsvarā tas jādara, ja tev ir register_globals ielēgti kā on) - lai kāds neuzmin, ka inklūdu masīvs tev saucās "include_array" un neiebaro kaut ko līdzīgu "index.php?include_array[]=attālināts.hackera.scripts&include=0" [tādejādi radot skriptā jaunu masīvu ar vienu faila nosaukumu un piepraōt to ieinklūdot, jo tas arī būs masīva "nulles" elements]. Vai nu vismaz tādu masīvu definēt kā konstanti (sk. man. define();) Link to comment Share on other sites More sharing options...
sviesc Posted July 1, 2003 Author Report Share Posted July 1, 2003 Baigais paldies.... :blink: tagad es saprast sviesc Link to comment Share on other sites More sharing options...
Recommended Posts