Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [JSONP] Plik JS aktywny tylko gdy wywoływany jest z konkretnej domeny
fenix.robi
post 17.04.2014, 12:48:17
Post #1





Grupa: Zarejestrowani
Postów: 97
Pomógł: 7
Dołączył: 24.06.2008

Ostrzeżenie: (0%)
-----


Witam,

pewnego czasu stworzyłem widget wyświetlający treść, który można odpalić na innej stronie.

JS --------GET---------> PHP ----calback(data)----> JS

I w js wstrzykuje dane do strony, która korzysta z widgetu.

Niestety niektórzy ściągają plik JS na swój serwer, i modyfikują widget jak i dane, chciałbym tego uniknąć, i stosować jakiś komunikat jeśli JS byłby wywoływany z innej domeny niż plik PHP.
Czy istnieje jakiś sposób na zabezpieczenie skąd dołączany jest skrypt JS?

Ten post edytował fenix.robi 17.04.2014, 12:49:11
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
timon27
post 25.04.2014, 11:36:51
Post #2





Grupa: Zarejestrowani
Postów: 578
Pomógł: 69
Dołączył: 15.04.2007
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Idealnie zrobić się nie da.
Jakkolwiek zabezpieczysz skrypt każdy może go sobie pobrać.

Ale możesz utrudnić im poprzez:
(piszę z ręki, więc mogą być błędy)
  1. var url=document.URL;
  2. var domena=url.hostname;
  3. if(domena=='mojadomena.pl'){
  4. //CAŁY DOTYCHCZASOWY KOD
  5. }

Następnie plik js 'zaciemnić', co już nie będzie łatwe.
Proponuję najpierw zamienić nazwy zmiennych na jednoliterowe,
potem go skrócić:
http://closure-compiler.appspot.com/home
a potem skorzystać z jakiegoś obfuscatora:
http://javascriptobfuscator.com/

Ten post edytował timon27 25.04.2014, 11:37:32
Go to the top of the page
+Quote Post
timon27
post 29.04.2014, 10:48:36
Post #3





Grupa: Zarejestrowani
Postów: 578
Pomógł: 69
Dołączył: 15.04.2007
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


To dalej to samo co napisałem.
Tylko że zamiast if sprawdzającego host dasz ifa sprawdzającego token/datę.
Tak samo: złodziej zobaczy ifa i sobie usunie.
Musisz więc mocno zaciemnić kod aby mu się nie chciało.

Pytanie: po co to robisz?

Ten post edytował timon27 29.04.2014, 10:48:55
Go to the top of the page
+Quote Post
timon27
post 29.04.2014, 11:31:26
Post #4





Grupa: Zarejestrowani
Postów: 578
Pomógł: 69
Dołączył: 15.04.2007
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Ale ty robisz teraz tylko ochronę przed hotlinkowaniem.
Jeśli ktoś już wszedł na twoją stronę to ma ten plik na kompie.
Wrzuca sobie na serwer i działa bo w js nie zamieściłeś żadnych zabezpieczeń.

Pytanie: po co to robisz?
W sensie dlaczego ci zależy aby nie modyfikowali twojego widżetu?
Co ci przeszkadza że ktoś idzie na skróty?
To ich sprawa jak coś zepsują.
Tak bardzo 'cenny' jest ten plik że nie chcesz się nim dzielić?
Go to the top of the page
+Quote Post
trueblue
post 29.04.2014, 13:08:19
Post #5





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


Nawet jak zrobisz token, to będzie można podejrzeć odpowiedź na żądanie lub podglądać ruch sieciowy.
Zabezpieczającego w 100% rozwiązania nie ma.


--------------------
Go to the top of the page
+Quote Post
owca_82
post 29.04.2014, 17:53:03
Post #6





Grupa: Zarejestrowani
Postów: 77
Pomógł: 8
Dołączył: 22.04.2012

Ostrzeżenie: (0%)
-----


Jeżeli myślisz że uniemożliwisz komuś pobranie i zmodyfikowanie swojego skryptu js to jesteś w błędzie - możesz co najwyżej, jak ktoś już tutaj wspominał próbować go zaciemnieć, ale i to można "rozgryźć" smile.gif
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 07:11