[mysql]table drop/create in PHP?

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • borgdaville
  • Registratie: December 2000
  • Laatst online: 19:44
Ik ben nieuw in PHP en SQL, het lukt mij allemaal vrij aardig ik zit alleen met een probleem dat met de gedachte achter iets te maken heeft.

Ik wil een matrix maken(raster). Dus een soort tabel waarin ik letters kan zetten op de kruising van rij en kolom om aan te geven welke relatie ze met elkaar hebben.

Dit gaat dinamisch gegenereerd worden en moet makkelijk uit te breiden zijn.

Nu wil ik het zo doen:
De waardes van alle kolommen haal ik uit een tabel met 1 veld.
De waardes voor de rijen haal ik uit een tabel met (1+aantal kolommen) velden.

Probleem met deze constructie is dat de database user die in mijn PHP code opneem Create en Drop rechten moet hebben op op rijen tabel, om een extra veld in de rijen tabel toe te voegen wanneer er in de kolomen tabel een record wordt toegevoegd. En volgens mij is dit normaal niet de bedoeling ivm beveiligings technische reden.

Is dit waar(dat het onveilig is) en hoe wordt zoiets in de regel aangepakt?

PS: ik vraag me zowiezo af of een gebruikersnaam en wachtwoord opgeslagen in de PHP code door een gebruiker gelezen kan worden.

Familieman, nerd, mooi weer fietser, buitenmens en levensgenieter...


Acties:
  • 0 Henk 'm!

  • -Pieter-471
  • Registratie: Oktober 2005
  • Laatst online: 04-03 07:27
In principe zijn CREATE/DROP privileges niet onveiliger dan b.v. UPDATE/DELETE privileges. Het maakt niet veel uit of een hacker de hele tabel weggooit of alleen de data uit je tabellen. UPDATE is misschien nog wel het meest gevaarlijk omdat een hacker dan ook nog eens dingen kan wijzigen die in eerste instantie niet zo opvallen (een ontbrekende tabel valt meestal wel op ;-)).

Je zou kunnen overwegen om een aparte database te maken voor de tabellen waar het om gaat zodat alleen die tabellen risico lopen aangezien je alleen CREATE/DROP privileges hoeft te geven voor die database.

Naam/wachtwoord gegevens in php scripts zijn in principe niet zichtbaar tenzij de webserver verkeerd is geconfigureerd en de source van je php script laat zien i.p.v. de uitvoer. Wat je kunt doen om dit soort problemen te voorkomen is de naam/wachtwoord gegevens in een file buiten de voor het web toegankelijke directory te plaatsen en vanuit php de naam/wachtwoord gegevens inlezen vanuit die file.

Acties:
  • 0 Henk 'm!

  • borgdaville
  • Registratie: December 2000
  • Laatst online: 19:44
-Pieter- schreef op donderdag 20 oktober 2005 @ 09:45:
In principe zijn CREATE/DROP privileges niet onveiliger dan b.v. UPDATE/DELETE privileges. Het maakt niet veel uit of een hacker de hele tabel weggooit of alleen de data uit je tabellen. UPDATE is misschien nog wel het meest gevaarlijk omdat een hacker dan ook nog eens dingen kan wijzigen die in eerste instantie niet zo opvallen (een ontbrekende tabel valt meestal wel op ;-)).
Klinkt heel logisch indd!
Je zou kunnen overwegen om een aparte database te maken voor de tabellen waar het om gaat zodat alleen die tabellen risico lopen aangezien je alleen CREATE/DROP privileges hoeft te geven voor die database.
dat had ik zowiezo al gedaan
Naam/wachtwoord gegevens in php scripts zijn in principe niet zichtbaar tenzij de webserver verkeerd is geconfigureerd en de source van je php script laat zien i.p.v. de uitvoer. Wat je kunt doen om dit soort problemen te voorkomen is de naam/wachtwoord gegevens in een file buiten de voor het web toegankelijke directory te plaatsen en vanuit php de naam/wachtwoord gegevens inlezen vanuit die file.
okay, goed om te weten, gaat mij momenteel een beetje ver. Pagina is zowiezo voor een intranet dus dat geloof ik dan maar even. Mocht ik ooit op internet publiceren is dit een goeie om te onthouden.

Bedankt!

Familieman, nerd, mooi weer fietser, buitenmens en levensgenieter...


Acties:
  • 0 Henk 'm!

  • T-MOB
  • Registratie: Maart 2001
  • Laatst online: 16:36
Je kunt het creeëren van een kolom wel voorkomen door juist te normaliseren. Je maakt een tabel "kolommen" en een tabel "rijen", nu kun je een koppeltabel maken die aan een kolom en een veld een waarde toekent.
[kolommen]
kolomid | kolomnaam

[rijen]
rij-id | rijnaam

[rijen_x_kolommen]
rij-id | kolomid | waarde

Nu hoef je alleen nog maar inserts te doen om een "kolom" toe te voegen aan je raster :) Verder is het toekennen van DROP rechten niet gevaarlijk als je 100% kunt uitsluiten dat men van buitenaf queries kan uitvoeren. Punt is dat je dat meestal niet kunt garanderen, het gevaar bestaat dan dat iemand met behulp van sql-injectie (google-woord) de verkeerde tabellen uit je database dropt of wijzigt.

Voor het gebruikersnaam en wachtwoord geldt ongeveer hetzelfde. In principe kunnen gebruikers (als in bezoekers van de site) dit niet lezen. Tenzij je ergens in je applicatie een bestand letterlijk inleest en weergeeft op een manier die door de gebruiker te beïnvloeden is.
Bottom-line is dat je nooit user-input moet vertrouwen.

[ Voor 3% gewijzigd door T-MOB op 20-10-2005 09:55 . Reden: blijft ingewikkeld, dubbelle ontkenningen enzo ;) ]

Regeren is vooruitschuiven


Acties:
  • 0 Henk 'm!

  • KompjoeFriek
  • Registratie: Maart 2001
  • Laatst online: 15-08 22:46

KompjoeFriek

Statsidioot

edit:
Damn, T-MOB is me voor :(
Je zou als database structuur 3 tabellen kunnen maken. Eentje voor je rijen, eentje voor je kolommen, en een om de koppeling tussen een rij en kolom te maken. Zo ongeveer:

row
rowid
name

column
colid
name

rowcol
rowid
colid


Je zou dan op deze manier een koppeling kunnen maken:
row
rowidname
1test rij

column
colidname
5test kolom

rowcol
rowidcolid
15

[ Voor 3% gewijzigd door KompjoeFriek op 20-10-2005 09:55 ]

WhatPulse! - Rosetta@Home - Docking@Home


Acties:
  • 0 Henk 'm!

  • borgdaville
  • Registratie: December 2000
  • Laatst online: 19:44
indd dat is veel mooier, ik ben maar wat aan testen en het klooien dus dan zal ik het ook maar meteen goed doen!

Familieman, nerd, mooi weer fietser, buitenmens en levensgenieter...

Pagina: 1