Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zdalne połączenie z bazą MySQL
Forum PHP.pl > Forum > PHP
mihow
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ł...
Liko
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
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.
DeyV
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
Przeniesione: Pro => php
tsharek
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
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
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
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
Cytat
Dzia
MB

nie rozumie tych młodzieżowych skrótów:P
DeyV
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
A nie lepiej stworzyć w MySQL usera, który miałby dostęp do jakieś bazy i dać mu uprawnienia SELECT i tyle :-)
tsharek
no właśnei to miałem na myśli:)
treewood
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.
DeyV
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
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
a ja i tak uważam że lepiej by stworzyć nowego usera biggrin.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.