Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [jQuery] Treść dostępna tylko dla JS
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
matrik
Witam

Czy JavaScript przy pobieraniu pliku poprzez funkcje load() zwraca IP użytkownika strony czy IP serwera.
Szukam sposobu udostępnienia treści pliku tylko dla JS.
Np. przy pobieraniu przez JS pliku "domena.pl/plik.php" była dostępna jego treść,
lecz dla ciekawskiego źródło pliku zostało by ukryte.

Czy jest jakaś możliwość wykonania takiego zabezpieczenia?
W PHP nie jest trudno takie coś zrobić, warunek if($_SERVER['SERVER_ADDR'] !== $_SERVER['REMOTE_ADDR']){ exit; }
wookieb
Ale nic ono Ci nie da. Obejście? Masz gotowe w firebugu.
Po prostu nie ma sensu robienia takich zabezpieczeń bo nic nie dają.
matrik
Nom, też fakt :/
Ale pomijając firebuga, chodzi mi tu o roboty skanujące serwis.
Zależy mi na tym żeby nikt nie miał dostępu do tego pliku niż JS, i tak, żeby nie było trzeba podmieniać jakichś zmiennych w JS.
Crozin
Skoro JS ma mieć dostęp to i użytkownik będzie miał pełen dostęp - nie da się tego ominąć.
wookieb
No to możesz rozpoznawać nagłówki (porównaj), bądź dodawać jakieś własne do żądania ajaxowego i wsio.
matrik
Wookieb
Mam na to sposób już, zabezpieczyłem i działa ładnie. Wystarczy w samym PHP to zrobić tongue.gif
Crozin
Pokaż bo jestem bardzo ciekawy jak to niby zrobiłeś (tzn. jak wydaje Ci się, że to zrobiłeś).
Quantum
@matrik nie ma możliwości skutecznego zabezpieczenia danych dla AJAX-a. Wszystkie nagłówki etc. można wysłać choćby cURL-em snitch.gif Nawet jeżeli dodasz inne pseudo-zabezpieczenia, można je łatwo rozgryźć metodą eliminacji.
matrik
Owszem, da się to rozgryźć, ale takie mi wystarczy, przynajmniej do pewnego momentu

Dałem prosty kod:
  1. <?
  2. if($_SERVER[HTTP_X_REQUESTED_WITH] == 'XMLHttpRequest'){
  3. print_r($_SERVER);
  4. }else{
  5. echo "Nie masz dostępu";
  6. }
  7. ?>


Demo: http://server.webout.pl/testJS/test.php

Z czasem uda się zrobić lepsze tongue.gif
Crozin
Pomijając fakt, że Twój kod PHP zawiera błędy - naprawdę daruj sobie coś takiego, bo jedynie sprawisz radość pr0 hakierom z "obejścia zabezpieczeń" w 0.46 minuty.
Quantum
.. jak już chcesz polegać na x_requested_with, to najpierw sprawdź czy istnieje taki klucz w tablicy $_SERVER, zastosuj (strtolower) na jego wartości i wtedy możesz porównywać smile.gif
matrik
Crozin
A może coś więcej na temat "Twój kod PHP zawiera błędy"...
Widziałeś demo?
Crozin
i sobie zobacz.
matrik
Parse error: syntax error, unexpected T_IF in ....../print.php on line 3
  1. if(isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest'){

Hmm, zaraz sprawdze jak to można poprawić jesli się da haha.gif

Edit:
Sorka, niewstawiłem ";" po error_reporting(-1) haha.gif
A błedu mi nie wywala
  1. <?
  2. if(isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest'){
  3. echo "Treść dla JS";
  4. }else{
  5. echo "Nie masz dostępu";
  6. }
  7. ?>
Crozin
Ja pisałem w odniesieniu do: http://forum.php.pl/index.php?s=&showt...st&p=771615
To co jest post wyżej jest już w pełni poprawne - pod względem samego kodu - jako zabezpieczenie nadal bardziej śmieszy niż działa.
matrik
Śmieszne jest to, że ty w ogóle takie bzdety piszesz na temat własnego ...
Tak trudno jest przeczytać ZE ZROZUMIENIEM?? Na prawdę twoje wypowiedzi są równe zeru pod względem sensu... Wyraźnie jest to przedstawione jako przykład...

Nabijanie sobie postów, to dopiero frajda. Co nie Crozin?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.