mihow
2.06.2004, 08:31:57
Cześć!
W moim życiu pojawił się następujący problem.
Otóż chcę uruchomić kopię swojego serwisu na innym fizycznym serwerze (kolegi). Serwis korzysta z bazy MySQL, która jest na moim serwerze i łączy się standardowo z bazą za pomocą mysql_connect(). Otóż chce w kopi u kolegi pobrać newsy z mojej bazy danych, ale na serwerze kolegi muszę się połączyć z moją bazą danych. Jak się połączyć (w jaki sposób), aby kolega nie miał dostępu do danych dostępowych do bazy (login i hasło)? Bo jak w skryptach na jego serwerze zastosuje jawnie mysql_connect() i podam login i hasło to będzie mógł mi się włamać do mojej bazy a tego raczej bym nie chciał...
Możesz zrobić plik XMl, w którym będą te newsy będzię dynamicznie zmienana treść pliku jeżeli dodasz newsa. Wtedy tylko odczytujesz na innym serwerze. Albo można wykorzystać JavaScript.
mihow
2.06.2004, 08:52:20
Zrobiłem tak, ale nie wiem czy jest to wystarczająco bezpieczne:
na swoim serwerze w pliku news.php połączyłem się ze swoją bazą danych a w skrypcie u kolegi includowałem news.php i newsy się wyświetlają, bezpośredniego dostepu do danych kolega nie ma.
Sądzę, że to nie jest dobre rozwiązanie.
Dlaczego? Ponieważ zawsze można zrobić [php:1:9bb44ef89e]<?php
var_dump( $GLOBALS )
?>[/php:1:9bb44ef89e] i odczytać wszystkie informacje na temat zmiennych wykorzystanych w skrypcie.
Co prawda można by się było przed tym zabezpieczyć w ten sposób, że haseł i loginu nie zapisujesz w zmiennej, tylko bezpośrednio przekazujesz do funkcji, ale tak czy inaczej, dajesz komuś nieogranioczony dostęp do bazy.
Dlatego w takim przypadku najlepszym rozwiazaniem jest to wpomniane wyżej, czyli
- ty przygotowujesz skrypt, który pobiera z bazy dane i zwraca jest w postaci xml
- kolega pobiera plik xml. i z niego odczytuje dane.
Dobrze by tylko było do tego dodać obustronne cachowanie, tak by ta operacja nie musiała zachodzić przy każdym przeładowaniu strony.
ps. temat przenosze z pro
scanner
2.06.2004, 08:58:51
Przeniesione: Pro => php
tsharek
2.06.2004, 09:00:01
mugłbyś wyjaśnić jak includiwałeś skrypt? przecież musi server kolegi załadować jakos ten news.php - czyli ma do niego PEŁNY dostęp.
lepiej byś zrobił nowego usera w bazie danych, pszypożądkował byś mu bazę i prawa do niego i skopiował tam newsy.
edit: widzę że sie spuźniłem:) ale z 2 bazą danych wydaje mi się leprze podejście. otóż jest małe uniedogodnienie: jak się coś zmieni. ale to rozwiązałbym tak: jak dodaje newsa twój skrypt to dodaje go do 2 baz, a jak dodaje news kolega to twój skrypt sprawdza pszy wyświetlaniu różnicę i ładuje z bazy kolegi potrzebne newsy.
jeszcze jedno przychodzi mi na myśl: ale nei wiem czy się da. stworzyć usera tylko z prawami odczytu i zapisu tylko do wybranej tabeli
mihow
2.06.2004, 09:12:50
Cytat
Sądzę, że to nie jest dobre rozwiązanie.
Dlaczego? Ponieważ zawsze można zrobić [php:1:f41223d812]<?php
var_dump( $GLOBALS )
?>[/php:1:f41223d812] i odczytać wszystkie informacje na temat zmiennych wykorzystanych w skrypcie.
Co prawda można by się było przed tym zabezpieczyć w ten sposób, że haseł i loginu nie zapisujesz w zmiennej, tylko bezpośrednio przekazujesz do funkcji, ale tak czy inaczej, dajesz komuś nieogranioczony dostęp do bazy.
Dlatego w takim przypadku najlepszym rozwiazaniem jest to wpomniane wyżej, czyli
- ty przygotowujesz skrypt, który pobiera z bazy dane i zwraca jest w postaci xml
- kolega pobiera plik xml. i z niego odczytuje dane.
Dobrze by tylko było do tego dodać obustronne cachowanie, tak by ta operacja nie musiała zachodzić przy każdym przeładowaniu strony.
ps. temat przenosze z pro
No ok. Rozumiem.
Tylko co jeśli ktoś nie zna XML'a?
Może wiesz gdzie mogę o tym dokładnie poczytac?
tsharek
2.06.2004, 09:17:53
jest odpowiednia kategoria na tym forum zwana "xml" tam w "Tematyka i zasady panujące na forum XML" masz parę fajnych linków, m.in.
kurs xmla
mihow
2.06.2004, 09:27:28
Cytat
jest odpowiednia kategoria na tym forum zwana "xml" tam w "Tematyka i zasady panujące na forum XML" masz parę fajnych linków, m.in.
kurs xmla
Dzia
MB
tsharek
2.06.2004, 09:36:23
Cytat
Dzia
MB
nie rozumie tych młodzieżowych skrótów:P
A jak ktoś nie zna xml, i bardzo nie chce go poznać, to zawsze jeszcze zostaje WDDX Functions które zrobią to właściwie za niego.
party
2.06.2004, 10:17:29
A nie lepiej stworzyć w MySQL usera, który miałby dostęp do jakieś bazy i dać mu uprawnienia SELECT i tyle :-)
tsharek
2.06.2004, 10:20:26
no właśnei to miałem na myśli:)
treewood
2.06.2004, 11:41:37
lojej ... po co na sile XML? zrob sobie to na plikach txt i tez ci to bedzie chodzic... pewnie i o wiele szybciej ... niz sam parser XML'a
sie upieracie przy tym XML ... wiem zarabista sprawa ale w tej sytuacji to jest wrecz zbyteczne bo gdziez on bedzie te newsy przenosil jeszcze. XML mysle traktuje sie jako cos przenosnego a nie bazodanowego z tego co wiem.
hmm - a znasz coś bardziej przenośnego, niż komunikacja między 2 komputerami przy pomocy internetu?
Jak tu nie warto wykorzystywać xml, to kiedy?
Tym bardziej, że oba skrypty są pisane przez innych ludzi...
treewood
2.06.2004, 15:17:58
deyv - zmusiles mnie do uwazniejszego przeczytania pierwszego posta. Zmieniam zdanie i odpowiadam:
TAK XML to rozwiazanie warte uzycia.
A gdzie byl moj blad?
Myslalem, ze serwer 1 ma baze a takze skrypt z newsami a serwer 2 ma tez skrypt z newsami ale ma je wyswietlac z plikow a nie z bazy ...
tsharek
2.06.2004, 15:25:34
a ja i tak uważam że lepiej by stworzyć nowego usera
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.