Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Autocompete
Forum PHP.pl > Forum > Po stronie przeglądarki
Ryder
Witam,

Mam pytanie odnośnie skryptów "autocompete".
Do tej pory korzystałem z http://bassistance.de/jquery-plugins/jquer...n-autocomplete/

Chcialbym zrobić podpowiadanie nazwy użytkownika przy tworzeniu wiadomości.
Skrypt działa w ten sposób, że dostarczam mu plik z listą użytkowników (json.)

Ale, jeżeli wpiszę w przeglądarce nazwę pliku żródłowego (http://nazwastrony.pl/users.php) to wyświetla się lista użytkowników - Chciałbym tego unikąć.

Pytanie, czy można jakoś zabezpieczyć plik, aby nie był dostępny po wpisaniu w pole adresu przeglądarki.
Czy muszę skorzystac z innego rozwiązania (Ajax?) lub innego skryptu jQuery?


Przykładowy skrypt:
  1. <script type="text/javascript">
  2. $(function() {
  3. function format(mail) {
  4. return mail.name + " &lt;" + mail.to + "&gt";
  5. }
  6. $("#email").autocomplete('users.php', {
  7. multiple: true,
  8. dataType: "json",
  9. parse: function(data) {
  10. return $.map(data, function(row) {
  11. return {
  12. data: row,
  13. value: row.name,
  14. result: row.name + " <" + row.to + ">"
  15. }
  16. });
  17. },
  18. formatItem: function(item) {
  19. return format(item);
  20. }
  21. });
  22. });


skowron-line
http://davidwalsh.name/detect-ajax
sprawdz nagłówek żądania
nospor
Cytat
Czy muszę skorzystac z innego rozwiązania (Ajax?) lub innego skryptu jQuery?
Przecież ten autocomoplete korzysta właśnie z AJAX.... wiec zamienienie tego na AJAX nic ci nie da....

Do rzeczy: to normalne, że skoro przeglądarka ma dostęp do jakiegoś skryptu php, to znaczy ze ma do niego dostęp i że można się do niego dobraż w każdym momencie. Nic na to nie poradzisz. Skoro coś jest dostępne to jest i koniec kropka. Rozwiązanie podane przez skowrona to żadne rozwiązanie, bo jak ktos będzie chciał się do tego dobrać, to bez żadnego problemu to zrobi, przez podmiane nagłówków.

Wniosek: w ogóle na to nie patrz, że możesz tę listę miec przez wpisanie przez adres w przeglądarce. Skoro ajax może miec, to i normalnie przeglądarka może mieć. To nie jest problem.
markonix
Po prostu zamiast generowania całej listy ajaxem zrób zapytanie - LIKE 'LITERA%' - bo chyba teraz Ci tego brakuje.
To dużo nie zmienia - wywołanie ręcznie linku też wyświetli listę choć ograniczoną pierwszymi znakami.
Połączyłbym to ze wspomnianym skryptem weryfikującym nagłówek i teraz tylko jak bardzo komuś będzie bardzo zależało to będzie się męczył ze stworzeniem listy użytkowników na podstawie tego skryptu.

Poza tym taka lista nicków to żadne krytyczne dane.
nospor
Cytat
Poza tym taka lista nicków to żadne krytyczne dane.
A co za różnica czy to lista nicków czy lista loginów z hasłami? Skoro koleś je udostępnia dla danej osoby, znaczy że osoba ma prawo to widzieć, niezależnie czy robi to ajaxem czy bezpośrednio wpisując adres w przeglądarce smile.gif
Ryder
Dzięki za odpowiedzi.


Cytat
A co za różnica czy to lista nicków czy lista loginów z hasłami? Skoro koleś je udostępnia dla danej osoby, znaczy że osoba ma prawo to widzieć, niezależnie czy robi to ajaxem czy bezpośrednio wpisując adres w przeglądarce

Udostepniać tych danych nie chcę. Chce ułatwić tworzenie nowej wiadomości, tak aby użytkownik mógł łatwo i szybko wybrać osobę do której chce odpowiedzieć.

Posprawdzałem jak jest to rozwiązane na popularnych portalach.

Wynika z tego, że najlepszym rozwiązaniem jest nie wyświetlać pełnej listy użytkowników, a tylko np. znajomych, bez adresu email.
Wtedy jeżeli ktoś np. chciałby pobrać dane użytkowników wraz z mailami w celu np. spamowania, to będzie miał tylko loginy i tylko swoich znajomych.
nospor
Cytat
Udostepniać tych danych nie chcę. Chce ułatwić tworzenie nowej wiadomości, tak aby użytkownik mógł łatwo i szybko wybrać osobę do której chce odpowiedzieć.
Czyli udostępniasz. Skoro więc dana osoba, może widzieć konkretne dane przez ajax, to i naprawdę nie ma problemu, że może je zobaczyć wpisując bezpośredni adres w przeglądarce
Ryder
Tak, zgadzam się.

Tylko ograniczyłem ta listę do znajomych, bez maili.
Nie pobieram przez parametr z linku, tylko wyświetlam w pliku (po session), żeby nie dało się wpisywać rożnych id i pobierac dla różnych użytkowników.
nospor
Cytat
Nie pobieram przez parametr z linku, tylko wyświetlam w pliku (po session), żeby nie dało się wpisywać rożnych id i pobierac dla różnych użytkowników.
No i doborze. Aczkolwiek sądziłęm, że masz tak zrobione od samego początku smile.gif Skoro nie miałeś, to nic dziwnego że było dla Ciebie problemem, że ktoś w przeglądarke mógł podać linka. No ale to była wina po Twojej stronie, którą już widzę poprawiłeś smile.gif
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.