Direct URL access
ik heb de index , dan een map genaamd php en daarin al me php bestanden.
wat de bedoeling is , ik wil dat als er in de url bar wordt ingevuld : www.domein.com/php/bestandsnaam.php
dat deze niet toegankelijk is. maar als ik op mijn site zit en ik klik op een link
(<a href="php/bestandsnaam">) dat het bestand dan wel toegankelijk is voor de gebruiker.
ik ben al een tijdje bezig met de .htacces file maar nog geen succes gehad. wat ik heb geprobeerd is :
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
# This folder does not require access over HTTP
# (the following directive denies access by default)
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.deomein.com/.*$ [NC]
RewriteRule \.(php|gif|jpg|png|mpg|mov)$ - [F]
Order allow,deny
# (the following directive denies access by default)
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.deomein.com/.*$ [NC]
RewriteRule \.(php|gif|jpg|png|mpg|mov)$ - [F]
Order allow,deny
is er iemand die mij hiermee kan helpen?
Toevoeging op 23/11/2012 00:03:25:
ohja ook is er een folder genaamd pagina's in de php folder met php inc bestanden die worden geinclude in de index. ook hier zit een htacces file in. deze werkt wel vanwege dat het geinclude wordt.
www.domein.com/php/bestandsnaam.php komt of rechtstreeks?
Geef daar nu zelf eens antwoord op :)
Dat gaat dus niet werken! een bestand van welk type dan ook is of wel of niet publiekelijk toegankelijk. Hoe men daar dan komt heeft daar niets mee te maken.
Wat wel kan is buiten je php directory een php bestand maken die wel door gebruikers geladen kan worden waarna binnen het php script de bestanden in een 'gesloten directory' ingeladen geworden.
een Deny from all in .htaccess zorgt ervoor dat die directory niet publiek toegankelijk is maar wel vanuit je php script
En hoe moet jouw server dan weten of iemand via jouw link (<a href="php/bestandsnaam">) bij Geef daar nu zelf eens antwoord op :)
Dat gaat dus niet werken! een bestand van welk type dan ook is of wel of niet publiekelijk toegankelijk. Hoe men daar dan komt heeft daar niets mee te maken.
Wat wel kan is buiten je php directory een php bestand maken die wel door gebruikers geladen kan worden waarna binnen het php script de bestanden in een 'gesloten directory' ingeladen geworden.
een Deny from all in .htaccess zorgt ervoor dat die directory niet publiek toegankelijk is maar wel vanuit je php script
Gewijzigd op 23/11/2012 00:39:12 door Frank Nietbelangrijk
en wat zou dan een goeie manier zijn om het dus vanuit een php script aan te roepen? , het is zegmaar een script dat ik op mijn homepage op een link klik en het script update dan een variabele in de database naar +1 , dit moet via die knop kunnen maar niet door de url in te typen. dus stel ik zou hem in de htacces zetten. hoe kan ik dan alsnog dat script banaderen vanuit een ander php script?
Je kan een define() defineeren.
In je uitvoerende script kijk je of die define bestaat:
Nog mooier is om het script buiten de webroot te plaatsen.
Gewijzigd op 23/11/2012 09:14:17 door - Ariën -
Wellicht zijn er veel betere oplossingen dan deze omslachtige manier.
Zoals een random GET var in de url die je in de sessie bewaard en vergelijkt.
Dus <a href="php/test.php?check=#%$@^@DGDWu502">test</a>
En als je geen $_GET['check'] hebt of hij is niet gelijk aan #%$@^@DGDWu502 die ook in $_SESSION['check'] staat dan mag het script niet worden uitgevoerd.
Dus wat is het doel?
Toevoeging op 23/11/2012 09:24:13:
en mijn sessie staat gelijk aan mn username , en die wordt niet in de url balk weergegeven , mijn checks zijn dus where Username =$_SESSION['Username']