Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

Servers

phpmyadmin beveiligen

None
19 antwoorden
  • Hallo,

    Ik ben voor de lol met een webserver bezig. Ik gebruik Win 98, en PHPTriad als server (dus ook Apache). Hier zit ook MySQL op. Ik moet database aanmaken in: Phpmyadmin.

    Ik wil graag in Phpmyadmin beveiligen. Want als nu iemand naar: Http://XXX.XXX.XXX/phpmyadmin gaat, kan iedereen mijn database bewerken! Ik wil dus hebben dat als ze hier heen gaan, dat ze dan een wachtwoord moeten intypen. In de handleiding staat dat je het bestandje: config.inc.php moet aanpassen. Dat bestand ziet er ong. zo uit:

    ——-
    $cfgServers[1]['host'] = 'localhost'; // MySQL hostname
    $cfgServers[1]['port'] = ''; // MySQL port - leave blank for default port
    $cfgServers[1]['socket'] = ''; // Path to the socket - leave blank for default socket
    $cfgServers[1]['connect_type'] = 'tcp'; // How to connect to MySQL server ('tcp' or 'socket')
    $cfgServers[1]['stduser'] = ''; // MySQL standard user settings (this user must have read-only
    $cfgServers[1]['stdpass'] = ''; // access to the "mysql/user" and "mysql/db" tables)
    $cfgServers[1]['auth_type'] = 'config'; // Authentication method (config, http or cookie based)?
    $cfgServers[1]['user'] = 'root'; // MySQL user
    [b:754e317c56]$cfgServers[1]['password'] = 'test'; // MySQL password (only needed with 'config' auth)[/b:754e317c56]$cfgServers[1]['only_db'] = ''; // If set to a db-name, only this db is displayed at left frame

    ————
    Ik heb hier (wat vet is) een wachtwoord ingetypt. Maar als ik nu naar phpmyadmin gaat staat er deze melding:

    ————-
    [b:754e317c56]Welkom op phpMyAdmin 2.2.3[/b:754e317c56]

    Fout
    MySQL retourneerde:

    Access denied for user: 'root@localhost' (Using password: YES)
    ————

    Weet iemand wat ik fout doe, en weet iemand hoe ik het goed kan instellen?

    BVD
  • Zet het wachtwoord niet vast in de config.

    Zoek de volgende regel op:
    [code:1:d981f63814]$cfg['Servers'][$i]['auth_type'] = 'http'; // Authentication method (config, http or cookie based)?[/code:1:d981f63814]

    Als die zoals hier op http staat krijg je een inlogschermpje voor user en wachtwoord.
  • [quote:d12b0e427c="Sjoerd Boerhout"]Zet het wachtwoord niet vast in de config.

    Zoek de volgende regel op:
    [code:1:d12b0e427c]$cfg['Servers'][$i]['auth_type'] = 'http'; // Authentication method (config, http or cookie based)?[/code:1:d12b0e427c]

    Als die zoals hier op http staat krijg je een inlogschermpje voor user en wachtwoord.[/quote:d12b0e427c]

    Sorry, maar dit werkt niet. Kan iemand hem misschien voor mij aanpassen? (dat ik dat bestandje via email stuurt)??
    Maar bedankt voor je hulp!
  • Ik heb het ook zo werkend dus het werkt prima. :wink:

    Check de manual van phpMyAdmin.
    [quote:cf12cd92e6]$cfg['Servers'][$i]['auth_type'] string ['http'|'cookie'|'config']
    Whether config or cookie or http authentication should be used for this server.

    * 'config' authentication ($auth_type = 'config') is the plain old way: username and password are stored in config.inc.php.
    * 'cookie' authentication mode ($auth_type = 'cookie') as introduced in 2.2.3 allows you to log in as any valid MySQL user with the help of cookies. Log name and password are stored in cookies during the session and password is deleted when it ends. This can also allow you to login in arbitrary server if $cfg['AllowArbitraryServer'] enabled.
    * 'http' authentication (was called 'advanced' in older versions) ($auth_type = 'http') as introduced in 1.3.0 allows you to log in as any valid MySQL user via HTTP-Auth.


    Please see the install section on "Using authentication modes" for more information.


    $cfg['Servers'][$i]['user'] string
    $cfg['Servers'][$i]['password'] string
    The user/password-pair which phpMyAdmin will use to connect to this MySQL-server. This user/password pair is not needed when HTTP or cookie authentication is used, and should be empty.[/quote:cf12cd92e6]
  • [quote:2164ce8926="Sjoerd Boerhout"]Ik heb het ook zo werkend dus het werkt prima. :wink:

    Check de manual van phpMyAdmin.
    [quote:2164ce8926]$cfg['Servers'][$i]['auth_type'] string ['http'|'cookie'|'config']
    Whether config or cookie or http authentication should be used for this server.

    * 'config' authentication ($auth_type = 'config') is the plain old way: username and password are stored in config.inc.php.
    * 'cookie' authentication mode ($auth_type = 'cookie') as introduced in 2.2.3 allows you to log in as any valid MySQL user with the help of cookies. Log name and password are stored in cookies during the session and password is deleted when it ends. This can also allow you to login in arbitrary server if $cfg['AllowArbitraryServer'] enabled.
    * 'http' authentication (was called 'advanced' in older versions) ($auth_type = 'http') as introduced in 1.3.0 allows you to log in as any valid MySQL user via HTTP-Auth.


    Please see the install section on "Using authentication modes" for more information.


    $cfg['Servers'][$i]['user'] string
    $cfg['Servers'][$i]['password'] string
    The user/password-pair which phpMyAdmin will use to connect to this MySQL-server. This user/password pair is not needed when HTTP or cookie authentication is used, and should be empty.[/quote:2164ce8926][/quote:2164ce8926]

    Weet jij ook met welk programma ik het beste dat bestandje kan openmaken?
  • [quote:a8d80c3ef5="Sjoerd Boerhout"]Ik heb het ook zo werkend dus het werkt prima. :wink:

    Check de manual van phpMyAdmin.
    [quote:a8d80c3ef5]$cfg['Servers'][$i]['auth_type'] string ['http'|'cookie'|'config']
    Whether config or cookie or http authentication should be used for this server.

    * 'config' authentication ($auth_type = 'config') is the plain old way: username and password are stored in config.inc.php.
    * 'cookie' authentication mode ($auth_type = 'cookie') as introduced in 2.2.3 allows you to log in as any valid MySQL user with the help of cookies. Log name and password are stored in cookies during the session and password is deleted when it ends. This can also allow you to login in arbitrary server if $cfg['AllowArbitraryServer'] enabled.
    * 'http' authentication (was called 'advanced' in older versions) ($auth_type = 'http') as introduced in 1.3.0 allows you to log in as any valid MySQL user via HTTP-Auth.


    Please see the install section on "Using authentication modes" for more information.


    $cfg['Servers'][$i]['user'] string
    $cfg['Servers'][$i]['password'] string
    The user/password-pair which phpMyAdmin will use to connect to this MySQL-server. This user/password pair is not needed when HTTP or cookie authentication is used, and should be empty.[/quote:a8d80c3ef5][/quote:a8d80c3ef5]

    Ik heb het aangepast, maar nu staat er dit:

    ———-

    [size=18:a8d80c3ef5]Internal Server Error[/size:a8d80c3ef5]
    The server encountered an internal error or misconfiguration and was unable to complete your request.
    Please contact the server administrator, admin@localhost and inform them of the time the error occurred, and anything you might have done that may have caused the error.

    More information about this error may be available in the server error log.

    ———

    ?? Doe ik iets fout?????
  • Uiteraard kun je ook cookie gebruiken, daar had ik minder problemen mee dan met http. Het is ook niet zo verstandig om PHPMyAdmin op de webserver te gebruiken. Je kan wellicht beter vanaf een externe pc met PHPMyAdmin benaderen.
  • [quote:b562792a6f="Sellis"]Uiteraard kun je ook cookie gebruiken, daar had ik minder problemen mee dan met http. Het is ook niet zo verstandig om PHPMyAdmin op de webserver te gebruiken. Je kan wellicht beter vanaf een externe pc met PHPMyAdmin benaderen.[/quote:b562792a6f]
    Waarom is dat niet verstandig?

    Soms moet je wel, omdat de Mysqlserver en de webserver dezelfde machine zijn en Mysql alleen maar connecties vanaf localhost accepteerd. Een beetje mysqlserver accepteerd alleen verbindingen vanaf de webserver en dan moet je daar phpmyadmin wel op zetten
  • Waarom zou de mysql server alleen connecties vanaf de localhost accepteren?? Dat kan toch ook vanaf een andere pc?
  • [quote:90aafa8555="Sellis"]Waarom zou de mysql server alleen connecties vanaf de localhost accepteren?? Dat kan toch ook vanaf een andere pc?[/quote:90aafa8555]
    De zin die ik hiervoor schreef was niet helemaal duidelijk :)
    Er zijn Mysql server die alleen connecties vanaf localhost accepteren :). Dat is niet altijd zo. Als dat wel zo is dan moet je wel phpmyadmin op de webserver zetten.

    Blijft mijn vraag: waarom is het niet verstandig om PHPmyadmin op dezelfde pc te installeren?
  • Ok, eens.
    Waarom ik het niet verstandig vind om PHPMyAdmin op de web/sql server te zetten is de volgende:
    Een webserver is van buitenaf benaderbaar. Dan moet je ook voor een heel goede beveiliging zorgen. Als iemand de kans krijgt binnen te komen ligt veelal de site en de sql database open omdat phpmyadmin dan gebruikt kan worden. Vaak is hier het wachtwoord al in opgeslagen.
    Uiteraard kun je de boel dichtspijkeren en phpmyadmin met inlogvenster gebruiken e.d. Maar ik ga liever voor 'voorkomen' dan genezen, een persoonlijke voorkeur.
  • [quote:332d4b65e7="Sellis"]Ok, eens.
    Waarom ik het niet verstandig vind om PHPMyAdmin op de web/sql server te zetten is de volgende:
    Een webserver is van buitenaf benaderbaar. Dan moet je ook voor een heel goede beveiliging zorgen. Als iemand de kans krijgt binnen te komen ligt veelal de site en de sql database open omdat phpmyadmin dan gebruikt kan worden. Vaak is hier het wachtwoord al in opgeslagen.
    Uiteraard kun je de boel dichtspijkeren en phpmyadmin met inlogvenster gebruiken e.d. Maar ik ga liever voor 'voorkomen' dan genezen, een persoonlijke voorkeur.[/quote:332d4b65e7]

    Oke oke, maar kan iemand ff helpen? :roll:
  • Ok, zo zou ik het doen:

    - 'installeer' PHPMyAdmin op een externe pc en zet in je config.inc.phh de volgende regel (een deel staat er al). Zorg dan wel dat op de localhost dus IIS en PHP geïnstalleerd staan: [code:1:2add533b16]$cfg['PmaAbsoluteUri'] = 'http://localhost/phpmyadmin';[/code:1:2add533b16] Overigens kun config.inc.php prima met bijv. dreamweaver bewerken.
    - ook moet je zoeken naar 'blowfish' In die regel moet je een woord invullen of een zin die gebruikt wordt om te versleutelen. Dus iets als "Super Secret PassWord Phrase" is wellicht aardig, maar je kan ook wat anders nemen.
    - In deze regel: [code:1:2add533b16]$cfg['Servers'][$i]['auth_type'] = 'cookie'; // Authentication method (config, http or cookie based)?[/code:1:2add533b16] zet je dus cookie neer. Daarboven moet je ook het ip adres van de server invullen.
    - Zorg dat je een account aanmaakt in de MySQL database (daarvoor heb je wellicht nog even PHPMyAdmin nodig op de webserver zelf). Maak een acount aan met alle rechten en een wachtwoord, zet de rechten zo dat hij overal vandaan (%) mag inloggen en niet alleen via localhost.
    - Als verder de php.ini goed staat kun je vanaf de externe phpmyadmin inloggen. Wil je meerdere databases benaderen? Kijk dan in config.inc.php, want de regel waarin je cookie hebt gezet wordt eronder herhaald. Elke keer kun je dus een ander ip adres ingeven. Tijdens het beginscherm van PHPMyAdmin kun je dan kiezen op welke server je wilt inloggen. Wil je MyAdmin op de server uitvoeren kun je dat ook doen met bovenstaande stappen. Alleen kun je dan localhost gebruiken ipv het ip nummer van de server. Uiteraard kan 127.0.0.1 ook.

    Ik hoop dat het zo een beetje duidelijk is.
  • [quote:1ff950260f="Sellis"]Ok, zo zou ik het doen:

    - 'installeer' PHPMyAdmin op een externe pc en zet in je config.inc.phh de volgende regel (een deel staat er al). Zorg dan wel dat op de localhost dus IIS en PHP geïnstalleerd staan: [code:1:1ff950260f]$cfg['PmaAbsoluteUri'] = 'http://localhost/phpmyadmin';[/code:1:1ff950260f] Overigens kun config.inc.php prima met bijv. dreamweaver bewerken.
    - ook moet je zoeken naar 'blowfish' In die regel moet je een woord invullen of een zin die gebruikt wordt om te versleutelen. Dus iets als "Super Secret PassWord Phrase" is wellicht aardig, maar je kan ook wat anders nemen.
    - In deze regel: [code:1:1ff950260f]$cfg['Servers'][$i]['auth_type'] = 'cookie'; // Authentication method (config, http or cookie based)?[/code:1:1ff950260f] zet je dus cookie neer. Daarboven moet je ook het ip adres van de server invullen.
    - Zorg dat je een account aanmaakt in de MySQL database (daarvoor heb je wellicht nog even PHPMyAdmin nodig op de webserver zelf). Maak een acount aan met alle rechten en een wachtwoord, zet de rechten zo dat hij overal vandaan (%) mag inloggen en niet alleen via localhost.
    - Als verder de php.ini goed staat kun je vanaf de externe phpmyadmin inloggen. Wil je meerdere databases benaderen? Kijk dan in config.inc.php, want de regel waarin je cookie hebt gezet wordt eronder herhaald. Elke keer kun je dus een ander ip adres ingeven. Tijdens het beginscherm van PHPMyAdmin kun je dan kiezen op welke server je wilt inloggen. Wil je MyAdmin op de server uitvoeren kun je dat ook doen met bovenstaande stappen. Alleen kun je dan localhost gebruiken ipv het ip nummer van de server. Uiteraard kan 127.0.0.1 ook.

    Ik hoop dat het zo een beetje duidelijk is.[/quote:1ff950260f]

    Oke, ik heb alles gedaan en ik heb nu een inlog schermpje. Waar stel ik het wachtwoord en gebruikersnaam in?
  • De username en password zet je in je SQL database. Daarmee wordt het inlogaccount geauthenticeerd. Standaard kun je geloof ik alleen lokaal inloggen dus zal je dat eerst moeten doen. Het account zal dan de mogelijkheid moeten krijgen om overal vandaan (% ipv local) te kunnen inloggen.
    Daarna kun je dus vanaf een ander werkstation met PHPMyAdmin inloggen.

    Suc6
  • [quote:b6223c0b2e="Sellis"]De username en password zet je in je SQL database. Daarmee wordt het inlogaccount geauthenticeerd. Standaard kun je geloof ik alleen lokaal inloggen dus zal je dat eerst moeten doen. Het account zal dan de mogelijkheid moeten krijgen om overal vandaan (% ipv local) te kunnen inloggen.
    Daarna kun je dus vanaf een ander werkstation met PHPMyAdmin inloggen.

    Suc6[/quote:b6223c0b2e]
    Bedankt! Maruh, hoe kom ik in de "SQL database"?? :-? (ik weet het, ik heb er niet veel verstand van… :P )
  • Dat kan op twee manieren:
    1) Via PHPMyAdmin (nu wel even lokaal gebruiken)
    2) Via commandline opdracht:
    - connectie maken: [code:1:6b84c35535]<pad waar sql geïnstalleerd staat>\mysql -h localhost -u root -p[/code:1:6b84c35535]
    - verbinding maken met database: [code:1:6b84c35535]use mysql[/code:1:6b84c35535]
    - rechten zetten [code:1:6b84c35535] grant all privileges on <databasenaam>.<tabelnaam> to <gebruikersnaam>@'%' identified by "<wachtwoord>" ;[/code:1:6b84c35535]
    Op alle plekken waar <> staat moet je je eigen gegevens invoeren en de <> tekens weglaten.
    Met deze commandline opdracht geef je een gebruiker (jezelf) all rechten op de database (en/of tabel) om deze overal vandaan (%) te benaderen. Het wachtwoord wat je hier in geeft is niet je eigen wachtwoord, maar dat van de root. Later kan je de databases volop benaderen en gebruikers en wachtwoorden aanmaken, wijzigen en verwijderen via PHPMyAdmin.

    Voldoende info zo??
  • [quote:bf5909c3a5="Sellis"]Dat kan op twee manieren:
    1) Via PHPMyAdmin (nu wel even lokaal gebruiken)
    2) Via commandline opdracht:
    - connectie maken: [code:1:bf5909c3a5]<pad waar sql geïnstalleerd staat>\mysql -h localhost -u root -p[/code:1:bf5909c3a5]
    - verbinding maken met database: [code:1:bf5909c3a5]use mysql[/code:1:bf5909c3a5]
    - rechten zetten [code:1:bf5909c3a5] grant all privileges on <databasenaam>.<tabelnaam> to <gebruikersnaam>@'%' identified by "<wachtwoord>" ;[/code:1:bf5909c3a5]
    Op alle plekken waar <> staat moet je je eigen gegevens invoeren en de <> tekens weglaten.
    Met deze commandline opdracht geef je een gebruiker (jezelf) all rechten op de database (en/of tabel) om deze overal vandaan (%) te benaderen. Het wachtwoord wat je hier in geeft is niet je eigen wachtwoord, maar dat van de root. Later kan je de databases volop benaderen en gebruikers en wachtwoorden aanmaken, wijzigen en verwijderen via PHPMyAdmin.

    Voldoende info zo??[/quote:bf5909c3a5]

    Met commandline bedoel je dan MS-DOS??
  • Yep

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.