Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[ASP/Access] Ophalen gegevens

Pagina: 1
Acties:

  • Adelbert
  • Registratie: Januari 2007
  • Laatst online: 27-01-2021
Hallo,

Ik heb een probleem met het ophalen van gegevens uit een access database. Via een dropdownmenu haal ik de artikel_naam van een product op. Nu zou ik ook graag het minimaal (minimaal aantal van dat product) uit deze tabel halen in hetzelfde .asp bestand.

Mijn code nu:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
<select name="artikel" id="artikel">

<% 
While NOT artikel.EOF
%>

<option value="<%=artikel("artikel_naam")%>"><%=artikel("artikel_naam")%></option>

<% 
artikel.MoveNext()
Wend
%>
                </select>


Het is wel mogelijk om bij value ook het minimaal te laten plaatsen maar dit is niet helemaal wat ik wil. In een later stadium wil ik hier ook mee gaan rekenen enz en zal het veld dus een unieke naam moeten hebben.

Heeft iemand hier een idee hoe dit het beste op te lossen is?


Optie 2 is als volgt:

Nadat ik de gegevens opgehaald heb worden ze via een INSERT INTO in de tabel geplaatst. Ik heb al verschillende mogelijkheden geprobeerd zoals deze:

INSERT INTO tabelnaam (kolomnaam1, kolomnaam2) VALUES ('" & Request.Form("naam") & "', 'SELECT minimaal FROM tabelnaam WHERE artikel_naam = " & Request.Form("naam") & "')

Alvast bedankt.

  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 23:41

TeeDee

CQB 241

ik snap er eerlijk gezegd geen kont van wat je nu wil bereiken

Inhoudelijk: kijk er niet raar van op als je database binnen de kortste keren leeg gegooid is. Zoek eens naar SQL Injection of Parameterized Queries.

Laat eens in plain html zien wat je wil bereiken (ik vermoed dat je moeilijkheden hebt met je uitleg) en wat je nu hebt. Vaak krijg je op zo'n manier van werken al een idee van hoe je het e.e.a. moet doen.

Heart..pumps blood.Has nothing to do with emotion! Bored


  • Hydra
  • Registratie: September 2000
  • Laatst online: 06-10 13:59
Je laat nergens je select query zien welke artikelen uit de database haalt, die zal iets als "select artikel_naam from artikelen" ofzo zijn? Met "select artikel_naam, artikel_min_aantal from artikelen" kun je meer kolommen selecteren, dus ik snap ook niet goed wat je probleem nu is.

https://niels.nu


  • Adelbert
  • Registratie: Januari 2007
  • Laatst online: 27-01-2021
Bedankt voor jullie opmerkingen. Met de term "sql injection" kon ik wel iets.Ik heb nu een workaround gevonden. Hij mag op slot.

  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 23:41

TeeDee

CQB 241

Knap dat sql injection het e.e.a. oplost voor je. Maar voor de zekerheid: wat is je workaround voor je, mij onbekende, probleem?

Heart..pumps blood.Has nothing to do with emotion! Bored


  • Adelbert
  • Registratie: Januari 2007
  • Laatst online: 27-01-2021
Ik heb gewoon nog een tussenpagina gemaakt waarbij er gekeken wordt naar het geselecteerde item op de eerste pagina. Aan de hand daarvan wordt het minimale aantal toegevoegd.

"SELECT minimaal FROM artikel WHERE artikel_naam = '" & Request.Form("artikel") & "'"

Ik had alleen graag deze pagina overgeslagen om het proces zo kort mogelijk te maken.

  • kenneth
  • Registratie: September 2001
  • Niet online

kenneth

achter de duinen

Ik betwijfel of je nu hebt begrepen wat SQL injection inhoudt. Ik zou je daar toch in verdiepen, het is veiligheidslek #1.

Klein voorbeeld, ik wil zoeken naar het volgende artikel: foo'; drop table artikel

De query die jouw code dan blindelings uitvoert is:
SQL:
1
SELECT minimaal FROM artikel WHERE artikel_naam = 'foo'; drop table artikel
En opeens is je tabel artikel weg ... of erger.

En het hoeft niet altijd een kwade bedoeling te zijn: op het moment dat er een artikel is waar echt een apostrof in de naam zit, gaat het ook mis.

Look, runners deal in discomfort. After you get past a certain point, that’s all there really is. There is no finesse here.


  • Adelbert
  • Registratie: Januari 2007
  • Laatst online: 27-01-2021
Ik snap je ook niet helemaal. Ik heb het totaal niet over drop table gehad. En ik ben ook niet van plan om dat sql statement toe te gaan passen.

Dus wordt de tabel ook niet verwijderd.

  • whoami
  • Registratie: December 2000
  • Laatst online: 19:48
Adelbert schreef op vrijdag 11 april 2008 @ 13:59:
Ik snap je ook niet helemaal. Ik heb het totaal niet over drop table gehad. En ik ben ook niet van plan om dat sql statement toe te gaan passen.
Jij niet nee ....

Los van het SQL injection verhaal -dat dus nog steeds niet opgelost is-, snap ik niet wat je probleem is.
Wat bedoel je hiermee:
Het is wel mogelijk om bij value ook het minimaal te laten plaatsen maar dit is niet helemaal wat ik wil.
Leg dat eens uit ?
Wat bedoel je met dat 'minimaal' ? Wat is dat ? Is dat ook een veld in je DB misschien die zo heet ?
En wat wil je ermee doen ? Het ophalen, en dan ?
Waarom steek je het nog eens in een andere tabel ? :? :?

[ Voor 47% gewijzigd door whoami op 11-04-2008 14:03 ]

https://fgheysels.github.io/


  • Adelbert
  • Registratie: Januari 2007
  • Laatst online: 27-01-2021
whoami schreef op vrijdag 11 april 2008 @ 14:00:
[...]
Jij niet nee ....

Los van het SQL injection verhaal -dat dus nog steeds niet opgelost is-, snap ik niet wat je probleem is.
Wat bedoel je hiermee:
[...]
Leg dat eens uit ?
Wat bedoel je met dat 'minimaal' ? Wat is dat ? Is dat ook een veld in je DB misschien die zo heet ?
En wat wil je ermee doen ? Het ophalen, en dan ?
Waarom steek je het nog eens in een andere tabel ? :? :?
Minimaal, is een veld uit een tabel zoals aangegeven:
Adelbert schreef op woensdag 09 april 2008 @ 11:07:
Nu zou ik ook graag het minimaal (minimaal aantal van dat product) uit deze tabel halen in hetzelfde .asp bestand.
Ik wil dit ophalen omdat ik die waarde dan met het nieuwe record opsla in een andere tabel. Nu zal je vast denken waarom op die manier? Heel simpel: minimaal is het minimale aantal dat aanwezig moet zijn en bij een nieuwe invoer komt ook een nieuw aantal te staan. Deze worden met elkaar vergeleken en als het aantal onder het minimale komt wordt er een overzicht van deze producten automatisch naar mij toe gemaild.

  • Hydra
  • Registratie: September 2000
  • Laatst online: 06-10 13:59
Adelbert schreef op vrijdag 11 april 2008 @ 13:59:
Ik snap je ook niet helemaal. Ik heb het totaal niet over drop table gehad. En ik ben ook niet van plan om dat sql statement toe te gaan passen.
Je kunt in je webformulier informatie posten die rechtstreeks in je SQL query gezet wordt, en dan kan een kwaadwillend iemand zondermeer tables droppen. Of erger. Dat is SQL injection.

https://niels.nu


  • Adelbert
  • Registratie: Januari 2007
  • Laatst online: 27-01-2021
Al onze applicaties zijn webbased op en deze manier opgebouwd. Het is wel goed beveiligd wie er bij kan. Deze mensen hebben de kennis niet om dit te doen en anders hebben we een backup. Maar we dwalen een beetje af :)

  • Toolskyn
  • Registratie: Mei 2004
  • Laatst online: 22-06 11:01

Toolskyn

€ 500,-

Adelbert schreef op vrijdag 11 april 2008 @ 14:37:
Al onze applicaties zijn webbased op en deze manier opgebouwd. Het is wel goed beveiligd wie er bij kan. Deze mensen hebben de kennis niet om dit te doen en anders hebben we een backup. Maar we dwalen een beetje af :)
Het mag dan goed beveiligd zijn, dan nog kan er daar vanwege een of ander lek een minder leuk persoon bijkomen. Of wat als een van de mensen die er sowieso al bij kan toch in een zeer slechte bui is? Wat als er nu eens per ongeluk iets wordt ingevoerd waardoor toch iets wordt aangepast wat niet zou moeten. Je hebt hier te maken met een zwaar beveiliginslek, dat moet je gewoon oplossen en niet als argumenten aandragen dat het tot nu toe altijd zo is gegaan en dat er een backup is, is al helemaal een non-argument.

Zelfs in de meest gesloten systemen zorg je ervoor dat je gebruikers geen verkeerde invoer kunnen geven, en dat kan in de code die je hebt gegeven gewoon simpelweg wel. Ik zou je toch willen aanraden om nog eens wat meer te lezen over de gigantische risico's die je loopt. Ik heb niet het idee dat je het helemaal begrijpt. Bij een SQL injection is het dus mogelijk dat je gebruiker een invoer geeft zodat die invoer als SQL wordt uitgevoerd, dat wil je voorkomen, je wil niet dat je gebruikers SQL gaan uitvoeren.

[ Voor 9% gewijzigd door Toolskyn op 11-04-2008 14:48 ]

gewooniets.nl


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 16:00

gorgi_19

Kruimeltjes zijn weer op :9

Om terug te gaan naar het eigenlijke probleem: Een self-join of subquery moet het probleem oplossen.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • Adelbert
  • Registratie: Januari 2007
  • Laatst online: 27-01-2021
Kan je in het VALUES deel ook een (sub)query hangen dan ?

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Adelbert schreef op vrijdag 11 april 2008 @ 14:55:
Kan je in het VALUES deel ook een (sub)query hangen dan ?
Heb je uberhaupt uitgezocht wat er bedoeld werd door gorgi? Of moeten we écht je handje vast houden?

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • Adelbert
  • Registratie: Januari 2007
  • Laatst online: 27-01-2021
Klopt, ik heb dit namelijk in mijn openingspost al aangegeven.

  • Hydra
  • Registratie: September 2000
  • Laatst online: 06-10 13:59
Adelbert schreef op vrijdag 11 april 2008 @ 14:37:
Al onze applicaties zijn webbased op en deze manier opgebouwd. Het is wel goed beveiligd wie er bij kan. Deze mensen hebben de kennis niet om dit te doen en anders hebben we een backup. Maar we dwalen een beetje af :)
Welk bedrijf zijn jullie? Dan weet ik door wie ik m'n webapplicaties niet laat doen.

https://niels.nu


  • Adelbert
  • Registratie: Januari 2007
  • Laatst online: 27-01-2021
Doet er niet toe, en wij maken niks voor klanten maar alleen voor eigen gebruik. Gelukkig doe ik eigenlijk alleen het systeembeheer. Dus dit is het eerste prul projectje voor mij.

Maar volgens mij staan er nu meer zinloze posts in dit topic dan zinvolle die iets bijdrage aan de vraag.

  • trixx
  • Registratie: Maart 2001
  • Laatst online: 21:09

trixx

-CTU- SuiZide

Adelbert schreef op vrijdag 11 april 2008 @ 15:14:
Doet er niet toe, en wij maken niks voor klanten maar alleen voor eigen gebruik. Gelukkig doe ik eigenlijk alleen het systeembeheer. Dus dit is het eerste prul projectje voor mij.

Maar volgens mij staan er nu meer zinloze posts in dit topic dan zinvolle die iets bijdrage aan de vraag.
Misschien is het handig voor de volgende keer om gewoon aan te geven wat je wil bereiken/maken. Iedereen die hier langskomt kan je dan beter op weg helpen. Dat is beter dan zinloos te starten en dan workarounds gaan maken. Workarounds zijn alleen noodzakelijk als niemend iets voor elkaar krijgt. Geef ons een opzet en een uitgebreide code dan kunnen we je misschien een stuk beter helpen.

Life is like a box of chocolate, it makes you sick.


  • Adelbert
  • Registratie: Januari 2007
  • Laatst online: 27-01-2021
Oke, ik zal voortaan de vraag wat uitgebreider omschrijven. Het probleem is iig opgeost met een inner join.

Bedankt.

[ Voor 8% gewijzigd door Adelbert op 18-04-2008 09:47 ]


  • mcdronkz
  • Registratie: Oktober 2003
  • Laatst online: 16-04 12:44
Adelbert schreef op vrijdag 11 april 2008 @ 15:14:

Maar volgens mij staan er nu meer zinloze posts in dit topic dan zinvolle die iets bijdrage aan de vraag.
Ja hoor, ga de uitsluitend goedbedoelde posts over de zware veiligheidslekken in je applicatie maar als zinloos bestempelen, denk niet dat je veel goodwill kweekt.

  • Adelbert
  • Registratie: Januari 2007
  • Laatst online: 27-01-2021
Ik maak al gebruik van SQL injection... maar daar gaat dit topic niet over.

Als vb: wachtwoord = '" & wachtwoord & "' , dus wel dubbele quotjes enz. Het kan vast altijd beter, maar daar wordt aan gewerkt en dit had niet de prioriteit omdat de app nog in test fase is.

  • bigbeng
  • Registratie: Augustus 2000
  • Laatst online: 26-11-2021
Adelbert schreef op vrijdag 18 april 2008 @ 10:11:
Ik maak al gebruik van SQL injection... maar daar gaat dit topic niet over.

Als vb: wachtwoord = '" & wachtwoord & "' , dus wel dubbele quotjes enz. Het kan vast altijd beter, maar daar wordt aan gewerkt en dit had niet de prioriteit omdat de app nog in test fase is.
En daarmee weten de meeste mensen hier genoeg ;) SQL Injection gebruik je niet, je moet ervoor waken. Dus zorgen dat het niet mogelijk is.

Het geeft niets dat je het nog niet alles van weet. Zoek eens op parametrized queries, deze zouden het in access ook al moeten doen. Alstublieft, hier alvast een code voorbeeld: How To Invoke a Parameterized ADO Query Using VBA/C++/Java

edit:
Ik zou moeten zeggen "gebruik je normaalgesproken niet", want hackers gebruiken natuurlijk wel SQL Injection :P

[ Voor 7% gewijzigd door bigbeng op 18-04-2008 10:22 ]


  • Adelbert
  • Registratie: Januari 2007
  • Laatst online: 27-01-2021
Thx zal er eens mee aan de slag gaan ;) heb aan het begin van dit topic ookal aangegeven dat ik een beginner ben dus beheer ik nog niet alle fijne kneepjes.
Pagina: 1