Hostuję aplikację Yii na współdzielonym hoście z moim przyjacielem i utrzymuję bazę danych na prywatnym serwerze MySQL. Ponieważ wiedział, informacji w bazie można znaleźć tak bardzo łatwy w protected\config\main.php
przez innego właściciela hosta (mój przyjaciel i więcej):Jak chronić ciąg połączenia aplikacji Yii?
'db'=>array(
'connectionString' => 'mysql:host=211.113.2.45;dbname=FamilyBook',
'emulatePrepare' => true,
'username' => root,
'password' => 'xcute445',
'charset' => 'utf8',
),
Czy istnieje rozwiązanie, aby ukryć informacje o połączeniu jak IP serwera MySQL, nazwę użytkownika, hasło?
Czy serwer MySQL zapewnia mechanizm RSA do ochrony informacji o bazie danych?
przykład dowolny ludzie mogą zobaczyć, jak poniżej, ale nie może zrozumieć lub zastosowanie:
'db'=>array(
'connectionString' => '57bf064b2166366a5ea61109006b8d5c',
'emulatePrepare' => true,
'username' => '63a9f0ea7bb98050796b649e85481845',
'password' => 'e04ccf211208f8c97e4a36e584926e60',
'charset' => 'utf8',
), // value by MD5 function, example only
Jeśli informacje „jak uwierzytelnić na moim serwerze sql "znajduje się na serwerze, na którym hostujesz swoją aplikację, i jest dostępny dla Yii, a następnie dla wszystkich z dostępem mogą znaleźć te informacje. Bez względu na to, czy jest to zwykłe hasło, hash czy klucz prywatny. –
Można użyć szyfrowania dwukierunkowego, [coś podobnego] (http://www.99points.info/2010/06/php-encrypt-decrypt-functions-to-encrypt-url-data/). Stwórz metody statyczne, a następnie przekaż 'Encryption :: decode (my_encoded_username)' na 'username',' password' itd. Nie jestem jednak pewien, czy Yii wczytuje klasy do pliku konfiguracyjnego. – adamors
@ Örs: Co zamierza osiągnąć? Musisz pobrać klucz szyfrowania skądś. Jeśli to miejsce jest dostępne wraz ze źródłem, każdy, kto ma dostęp do źródła, może odszyfrować hasło. Jeśli tak nie jest, po prostu umieść tam samo hasło i nie ma potrzeby włączania szyfrowania. – Jon