veiligheid met connectie maken database

Pagina: 1
Acties:

  • DJrDJ666
  • Registratie: April 2002
  • Laatst online: 20-10 14:41
Ik ben een beginneling als het aankomt op php en MySQL en
loop tijdens het lezen van voorbeelden op een probleem/vraag:

als ik kijk naar de volgende lijn 6 en 7 dan zie ik dat daar het gebruikersnaam en wachtwoord staan.
dat houd toch in dat wanneer iemand op mijn website komt en de bron uitleest gewoon mijn database kan aanpassen ? (ik weet het het is misschien wel heel erg een beginners vraag :p )
of is het mogelijk dat ik hier bevoorbeeld een naam en wachtwoord neerzet die alleen lees rechten heeft, en een login functie erin zet waarmee ik zelf onderhoudt kan verrichten

ik heb hier een stuk code:

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<?
// script to display all the Employees in the Employees table

// connection information
$hostName = "dbm1.itc.virginia.edu";
$userName = "mst3k";
$password = "secret";
$dbName = "mst3k_Inventory";

// make connection to database
mysql_connect($hostName, $userName, $password) or die("Unable to connect to host $hostName");

mysql_select_db($dbName) or die("Unable to select database $dbName");

// Select all the fields in all the records of the Employees table
$query = "SELECT * 
          FROM employees
          ORDER BY lastName, firstName";
$result = mysql_query($query);

// Determine the number of employees
$number = mysql_numrows($result);

// Create drop-down menu of employee names 

print "<table cellpadding=20 bgcolor=\"lightgrey\">
     <tr>
       <td>
        <form action=\"displayResults.php3\" method=\"post\">
          <select name=\"employeeID\">
            <option value=\"\">Select an employee</option>";

            for($i=0; $i<$number; $i++) {
                          $employeeID = mysql_result($result,$i,"employeeID");
                          $firstName = mysql_result($result,$i,"firstName");
                           $lastName = mysql_result($result,$i, "lastName");
                           print "<option value=\"$employeeID\">$firstName $lastName</option>";
            }
print "          </select>
          <input type=\"submit\" value=\"submit\" name=\"submit\">
        </form>
        </td>
      </tr>
    </table>";



hoop dat iemand mij dit kort kan uitleggen

  • Matthijs B
  • Registratie: Oktober 2006
  • Laatst online: 01-12 18:14
je kan php niet via de broncode uitlezen

je leest alleen de html uit

PHP is namelijk een server-side scripttaal. het wordt op de server uitgevoerd en slechts de output wordt naar de client gestuurd.

[ Voor 48% gewijzigd door Matthijs B op 21-03-2007 21:23 ]


  • DJrDJ666
  • Registratie: April 2002
  • Laatst online: 20-10 14:41
ja idd bedankt voor de snelle uitleg.

ik heb het uitgetest en kan inderdaad de bron niet zien :)

klik

ben ik daar ook weer gerust over

  • Nik
  • Registratie: April 2004
  • Laatst online: 30-11 14:49

Nik

Maar als iemand nou die php pagina (dus de file zelf, niet de output) download? Dat moet je toch ook beveiligen?

[ Voor 18% gewijzigd door Nik op 21-03-2007 21:42 ]


  • Y0ur1
  • Registratie: Oktober 2000
  • Niet online
DJrDJ666 schreef op woensdag 21 maart 2007 @ 21:39:
ja idd bedankt voor de snelle uitleg.

ik heb het uitgetest en kan inderdaad de bron niet zien :)

klik

ben ik daar ook weer gerust over
als je logisch nadenkt zou je kunnen bedenken dat het nergens op zou slaan, het zou het hele idee van dynamisch paginas zoals php onderuit halen.

  • TweakerNummer
  • Registratie: September 2001
  • Niet online
En wat gebeurt er als de PHP niet server-side geparst wordt door een configuratie fout? Dat zie je gewoon de hele broncode als tekst en dus ook de username & password.

Het is veiliger om de settings in een aparte file op te slaan en die in een non-www accessible dir te zetten. Dan gebruik je een require_once om die settings in te lezen.

  • Y0ur1
  • Registratie: Oktober 2000
  • Niet online
proller schreef op woensdag 21 maart 2007 @ 21:42:
Maar als iemand nou die php pagina (dus de file zelf, niet de output) download? Dat moet je toch ook beveiligen?
Of jij dat bestand nou direct opvraagt of downloadt, hij zal door de webserver en de php module worden geparst en je zult nimmer een broncode te zien krijgen(technische fout daar gelaten), alleen de output.

  • kmf
  • Registratie: November 2000
  • Niet online

kmf

encodeer dat ding met zend encoder of zo als je iets wat meer zekerheid wil.

One thing's certain: the iPad seriously increases toilet time.. tibber uitnodigingscode: bqufpqmp


  • Facer
  • Registratie: Januari 2002
  • Niet online

Facer

Ken net.....

Als je toch aan de veiligheid wil werken:
Zet je bestand die verbinding maakt met je database niet in je public_html.
Dit voor het geval PHP niet goed functioneerd en de bron van je script weer geeft. Als dit gebeurt dan ziet men alleen een include naar je connectie bestand maar degene kan niet zien wat er in staat

Gaat dus om de volgende code:
PHP:
1
2
3
4
5
6
7
$hostName = "dbm1.itc.virginia.edu";
$userName = "mst3k";
$password = "secret";
$dbName = "mst3k_Inventory";

// make connection to database
mysql_connect($hostName, $userName, $password) or die("Unable to connect to host");
kmf schreef op woensdag 21 maart 2007 @ 21:45:
encodeer dat ding met zend encoder of zo als je iets wat meer zekerheid wil.
Dan moet de server wel Zend Engine geinstalleerd hebben toch?

[ Voor 17% gewijzigd door Facer op 21-03-2007 21:50 . Reden: Quote op kmf toegevoegd ]


  • Reptile209
  • Registratie: Juni 2001
  • Laatst online: 11:26

Reptile209

- gers -

DJrDJ666 schreef op woensdag 21 maart 2007 @ 21:20:
[...]
of is het mogelijk dat ik hier bevoorbeeld een naam en wachtwoord neerzet die alleen lees rechten heeft, en een login functie erin zet waarmee ik zelf onderhoudt kan verrichten
[...]
Het lijkt me hoe dan ook geen verkeerd idee om dit principe te hanteren: login met minimale rechten om je scripts goed te kunnen draaien. Mocht je script dan op een of andere manier worden gehacked (SQL injectie of andere bugs) of op straat komen te liggen, dan blijft je database tamelijk ongeschonden. Bovendien beschermt het je tegen foutjes in je PHP waarmee je zelf je data zou kunnen slopen. Better safe than sorry, toch? ;)

Zo scherp als een voetbal!


  • doeternietoe
  • Registratie: November 2004
  • Laatst online: 10:32
en als we toch bezig zijn met hoe het beter kan:

Ik vind dit persoonlijk beter werken.
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
[...]

print "<table cellpadding=20 bgcolor=\"lightgrey\">
     <tr>
       <td>
        <form action=\"displayResults.php3\" method=\"post\">
          <select name=\"employeeID\">
            <option value=\"\">Select an employee</option>";
            while( $row = mysql_fetch_array( $result ) ){
                $employeeID = $row[ 'employeeID' ];
                $firstName = $row[ 'firstname' ];
                $lastName = $row[ 'lastname' ];
                print "<option value=\"$employeeID\">$firstName $lastName</option>";
            }
print "          </select>
          <input type=\"submit\" value=\"submit\" name=\"submit\">
        </form>
        </td>
      </tr>
    </table>";
?>


Uit je post begrijp ik dat je nog niet zo lang php schrijft en mss vind je dit toch handiger werken. Het bespaart een paar regeltjes code. Ik denk namelijk dat je $number toch verder nergens gebruikt.

  • DJrDJ666
  • Registratie: April 2002
  • Laatst online: 20-10 14:41
wow flink wat reacties, staan flink wat antwoorden in waar ik mee verder kan
nu tevens overal verder in verdiepen en bouwen en hopenlijk nog voor de zomervakantie een leuke webpagina klaar hebben

(nee geen verkapte reclame hier: adres met info.
heb zend dus ook, eventueel daar ook "ooit" in verdiepen :p

heel erg bedankt voor de reacties

  • Confusion
  • Registratie: April 2001
  • Laatst online: 01-03-2024

Confusion

Fallen from grace

Facer schreef op woensdag 21 maart 2007 @ 21:49:
Dit voor het geval PHP niet goed functioneerd en de bron van je script weer geeft. [..]
Lees: voor het geval iemand je webserver config verknalt. Zoals ik vanmiddag :+.

Wie trösten wir uns, die Mörder aller Mörder?

Pagina: 1