Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 73 Pomógł: 1 Dołączył: 19.12.2007 Ostrzeżenie: (0%)
|
Witam (IMG:style_emoticons/default/smile.gif)
Napisałem skrypt go.php który wywoływany jest z hiperłączy na mojej stronie w postaci: go.php?url=http://adrestrony.pl np: <a href="go.php?http://gry.pl">strona z grami</a> tak wygląda kod skryptu
chodzi o to że skrypt dodaje do bazy kliknięcia w dany link, następnie przekierowuje użytkownika pod dany adres ze zmiennej get - URL. Wszystko działa, problem pojawia się, kiedy w adresie ze zmiennej $_GET['url'] znajduje się np znak &, wtedy skrypt wariuje, bo jak się domyślam dopisuje to adres do skryptu go.php zamiast przekierowywać. Pytanie: Jak zrobić żeby to działało poprawnie i bezpiecznie? |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 2 958 Pomógł: 574 Dołączył: 23.09.2008 Skąd: wiesz, że tu jestem? Ostrzeżenie: (0%)
|
1. wiesz jak łatwo zrobić na tym skrypcie SQL Injection..?
2. poczytaj o base64 |
|
|
|
Post
#3
|
|
|
Grupa: Zarejestrowani Postów: 1 933 Pomógł: 460 Dołączył: 2.04.2010 Skąd: Lublin Ostrzeżenie: (0%)
|
Utnij wszystko co jest zgodne ze wzorcem:
|
|
|
|
Post
#4
|
|
|
Grupa: Zarejestrowani Postów: 73 Pomógł: 1 Dołączył: 19.12.2007 Ostrzeżenie: (0%)
|
Domyślam się, że nie jest to bezpieczne dlatego proszę o pomoc, właśnie nie chciałbym kodować adresu, chciałbym żeby użytkownik widział link do jakiego się kieruje, czy jest taka możliwość żeby to było w ten sposób, do tego bezpieczne?
Co do nie przejdzie ponieważ usunie wtedy z docelowego adresu znak &, który jest potrzebny (inaczej wywoływana strona się nie otworzy) Ten post edytował reyne 6.11.2012, 18:44:58 |
|
|
|
Post
#5
|
|
|
Grupa: Zarejestrowani Postów: 1 933 Pomógł: 460 Dołączył: 2.04.2010 Skąd: Lublin Ostrzeżenie: (0%)
|
Domyślam się, że nie jest to bezpieczne dlatego proszę o pomoc, właśnie nie chciałbym kodować adresu, chciałbym żeby użytkownik widział link do jakiego się kieruje, czy jest taka możliwość żeby to było w ten sposób, do tego bezpieczne? Co do nie przejdzie ponieważ usunie wtedy z docelowego adresu znak &, który jest potrzebny (inaczej wywoływana strona się nie otworzy) Nie przesadziłeś tutaj z cudzysłowami? a jeśli chodzi o bezpieczeństwo, to filtruj dokładnie dane wpisywane przez użytkownika, najlepiej zastosuj preg_match, co daje pewne zabezpieczenie. Musisz mieć absolutną pewność przed dodaniem czegoś do bazy, że jest to wartość, której oczekujesz, w tym przypadku adres www. |
|
|
|
Post
#6
|
|
|
Grupa: Zarejestrowani Postów: 915 Pomógł: 210 Dołączył: 8.09.2009 Skąd: Tomaszów Lubelski/Wrocław Ostrzeżenie: (0%)
|
Takiego przekierowania w ogóle się nie powinno robić. https://www.owasp.org/index.php/Open_redirect
|
|
|
|
Post
#7
|
|
|
Grupa: Zarejestrowani Postów: 73 Pomógł: 1 Dołączył: 19.12.2007 Ostrzeżenie: (0%)
|
czyli nie da się zrobić tego bez filtracji?
|
|
|
|
Post
#8
|
|
|
Grupa: Zarejestrowani Postów: 1 890 Pomógł: 339 Dołączył: 14.12.2006 Skąd: Warszawa Ostrzeżenie: (0%)
|
Zrobić się da.
Inna sprawa, że jeśli chcesz mieć w miarę zabezpieczoną aplikację, to nie możesz zostawić żadnych informacji przychodzących od usera bez filtrowania/walidacji. Nieważne czy to dane z GET, POST, COOKIES, nagłówków czy czegokolwiek innego. [edit] Odpowiadając na wcześniejsze pytanie - podawaj adres wyescape'owany funkcją urlencode. Ten post edytował sowiq 6.11.2012, 19:03:07 |
|
|
|
Post
#9
|
|
|
Grupa: Zarejestrowani Postów: 73 Pomógł: 1 Dołączył: 19.12.2007 Ostrzeżenie: (0%)
|
Ok dzięki Panowie (IMG:style_emoticons/default/smile.gif)
|
|
|
|
![]() ![]() |
|
Aktualny czas: 25.12.2025 - 13:04 |