Jump to content
php.lv forumi

Scripts


sviesc

Recommended Posts

<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

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

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

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

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

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

  • 3 weeks later...
×
×
  • Create New...