| Autor | Zpráva | ||
|---|---|---|---|
| phpcssmysql Profil |
#1 · Zasláno: 3. 2. 2013, 16:53:38
Chtěl bych prosím o radě - jak ochránit informaci o spojení k MySQL.
Popíšu Vám problém, který se týká o bezpečnosti: Například: index.php je zdojový kód PHP: <?php include 'config/db_connect.php'; ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="cs" lang="cs"> <head> <meta content="text/html; charset=utf-8" http-equiv="content-type" /> <meta content="index, follow, noarchive" name="robots" /> <title>Administrační systém</title> </head> <body> <form action="index.php" method="post" name="prihlaseni"> <input id="uzivatel_jmeno" type="text" /> <input id="uzivatel_heslo" type="password" /> <input id="potvrzeni" type="submit" value="PŘIHLÁSIT" /> </form> </body> </html> <?php mysql_close($pripojeni); ?> db_connect.php je zdojový kód PHP: <?php
$host = '....';
$uzivatel = '....';
$heslo = 'nejakeheslo';
$databaze = '....';
$pripojeni = mysql_connect($host, $uzivatel, $heslo) or die('Nemohu se připojit k databázi.');
mysql_select_db($databaze, $pripojeni) or die(mysql_error($pripojeni));
mysql_query('SET NAMES UTF8');
mysql_query('SET COLLATION_CONNECTION = utf8_czech_ci');
?>Pak já mohu naprogramovat jednoduchý kód v PHP - jak zjistit heslo, díky známé proměnné mohu získat přesné heslo, například: najit_heslo.php: <?php include 'config/db_connect.php'; echo $heslo; ?> Jak to mám zabránit, aby někdo nezneužili heslo, protože hloupí programátoři možná používají primitivní proměnnou. Zádám o Vás jako podporu, jak to mám zabránit :-))), aby bylo vše bezpečné. Budu se těšit, až mi sem někdo napíše, jinak Vám budu poděkovat hodně... |
||
| Jan Tvrdík Profil |
#2 · Zasláno: 3. 2. 2013, 16:56:03
phpcssmysql:
Pokud někdo zlý a cizí může na tvůj web nahrát libovolný PHP skript (jako např. najit_heslo.php), tak děláš něco špatně :)
Jak se domníváš, že se tam takový soubor dostane? |
||
| Davex Profil |
phpcssmysql:
V uvedeném konkrétním případě by pomohlo přidat na konec skriptu db_connect.php: unset($host, $databaze, $uzivatel, $heslo); Ale heslo půjde stejně zjistit, když si někdo přečte přímo zdrojový kód toho skriptu. |
||
| phpcssmysql Profil |
#4 · Zasláno: 3. 2. 2013, 17:23:06 · Upravil/a: phpcssmysql
Nene, například na ten stavající web patří jinému majitelovi - http://jinymajitel.com/, a na můj web - http://mujmajitel.com/ přidám jeden skript PHP:
<?php include 'http://www.jinymajitel.com/config/db_connect.php'; echo $heslo; ?> Pak už jsem zjistil heslo... Jak to zabránit? Například aspoň šifrovaně? Davex: No právě, jak na to zabránit??? |
||
| Davex Profil |
#5 · Zasláno: 3. 2. 2013, 17:26:07
phpcssmysql:
„Pak už jsem zjistil heslo...“ Z jiné domény nezjistil. PHP se interpretuje a výsledkem je prázdná HTML stránka, kde žádné heslo vidět není. |
||
| Jan Tvrdík Profil |
#6 · Zasláno: 3. 2. 2013, 17:29:38
phpcssmysql:
Nikoliv, takhle to nefunguje. To by stránka http://www.jinymajitel.com/config/db_connect.php musela vracet PHP kód. V tomto konkrétním případě ale vrací jen prázdnou stránku, protože skript db_connect.php nic nevypisuje.
Je ale dobrým zvykem do složky config obsahující skript db_connect.php umístit soubor .htaccess s obsahem Deny from all , který úplně zablokuje přístup z webu ke všem souborům v dané složce.
|
||
| phpcssmysql Profil |
#7 · Zasláno: 3. 2. 2013, 17:32:26 · Upravil/a: phpcssmysql
Davex:
Máte pravdu, klobouk dolů... Jan Tvrdík: Pravda, mě to nenapadlo tam dát hned .htaccess, a takže moc děkujeme, a doufám pevně, že bude stále chráněný :-) A jeden další dotaz: je možné provádět všechny proměnné - HOST, USER, DATABASE a SERVER v šifrovací podobě? |
||
| Jan Tvrdík Profil |
#8 · Zasláno: 3. 2. 2013, 17:36:55
phpcssmysql:
„je možné provádět všechny proměnné - HOST, USER, DATABASE a SERVER v šifrovací podobě?“ Netuším, co si pod tím představuješ, ale nedělej to :) |
||
| phpcssmysql Profil |
#9 · Zasláno: 3. 2. 2013, 17:43:16
Jan Tvrdík:
:-) jenom se proto ptám :-) |
||
|
Časová prodleva: 14 let
|
|||
0