Jump to content
php.lv forumi

DRY: Direct Access Is Not Allowed


daGrevis

Recommended Posts

Es veidoju vienu lietiņu un pēc DRY (Don't repeat yourself) principiem nebūtu jauki katram failam sākumā pievienot...

 

if( !isSet( $core ) ) {

exit( 'Direct access isn\'t allowed.' );

}

 

Variants divi ir iekļaut kādu failu, kurā ir šis kods. Bet ieguvums jau būtu smieklīgs (ja būtu)! xD Vēl kādas idejas?

 

 

P.S. Ja kādam interesē kāpēc tas ir vajadzīgs: vēl viens drošības slānis nekad nav nācis par skādi. xD

Link to comment
Share on other sites

Ja tu to taisi zem kohanas, tad dari to before(), vai kā tur bija, metodē.

 

header("Location:/access-denied/");
exit();

 

Bet globāli, ja tu negribi lai tam failam piekļūst pa tiešo - tad neliec viņu www mapē, bet gan ārpus tās!

 

Projekta sturktūra piem.:

 

app/
 controller/
 models/
 etc/
www/
 css/
 js/
 img/
 index.php

 

Iekš www mapes liek tos vailus, kas tieši pieejami no pārlūka, bet app mapē (vai kādā citā root līmeņa mapē) liek dažādus skriptus, kam nav paredzēts piekļūt pa tiešo.

Link to comment
Share on other sites

Vot šito es nesaprotu. Piemēram, kohana gandrīz visu failu sākumā ir sabāzts

 

defined('SYSPATH') or die('No direct script access.');

 

Kāds tolks not tā, ja tālāk seko tikai klase?

 

Es neesmu ņēmies ar Kohanu, bet imo nu tolka no tādas rindiņas īsti nav nekāda, ja fails satur tikai klases definīciju. Un kā jau minēju, šādiem failiem nebūtu jāatrodas www mapē, bet gan ārpus tās...

Link to comment
Share on other sites

Jēgas nav, tās ir tikai 3 liekas koda rindas. Ierakstot adresi "pa taisno", nekas tur neizpildīsies, ja ir tikai klase, f-jas vai konfiga info. Savukārt tavā linkā minētā aizsardzība pret citu lietotāju failu inkludošanu neko nedos. Ja kādam citam jūzerim uz līki konfigurētas kastes sagribēsies inkludot tavus failus un būs tāda iespēja, neviens viņam neliedz vispirms, piemēram ar echo file_get_contents() apskatīties, kas ir iekš tava index.php un nodefinēt visu to pašu savā īvilajā kodā...

 

Tas, ka kāds no opensourciem to dara, to nepadara par vajadzīgu. Es arī paspēju pārslimot sērgu katrā failā lik kaut kādas "aizsardzības" figņas. Ja nu tas palīdz naktī labāk gulēt, tad jau var darīt, bet cita pielietojuma īsti nav.

Edited by mad182
Link to comment
Share on other sites

Es tikai gribēju saprast kāpēc Viņi tā dara. Tas ka viņi tā dara jau nenozīmē, ka tā ir pareizi. Tagad redzu, ka nav nekādas jēgas tam. Es "roku atbildes"! =]] Paldies. ^^

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...