Zelf SQL-opdracht in elkaar sleutelen bij zoeken

Pagina: 1
Acties:

  • LauPro
  • Registratie: Augustus 2001
  • Laatst online: 30-11 12:59

LauPro

Prof Mierenneuke®

Topicstarter
Zoals bij zoveel zoekmachines, worden er bij het typen van 1 woord al gauw honderden tot duizenden pagina's gevonden. er zijn dan wel van die commando's als 'AND' en 'OR' maar ook met die heb je niet altijd raak...

Daarom introduceer ik: maak je eigen SQL-opdracht

Er moet natuurlijk wel wat beveiliging vooraf gaan, want de opdracht 'DELETE' is niet echt bevorderend voor dit forum >:)

Maar je zou dan zoiets kunnen doen:
code:
1
SELECT * FROM forum WHERE tekst LIKE <expressie's> ect ect AND x=bla bla OR y=blablo

Hierboven een niet al te serieus voorbeeld, maar het geeft even aan hoe zoiets in elkaar zit.

Niet iedereen zal hier gebruik van maken maar het isvooral handig voor die mensen zoals ik die graag de database even willen doorspitten met bepaalde 'syntax'-en.

Ik weet niet of jullie eigenlijk wel SQL gebruiken (neem aan van wel), maar wat vinden jullie hiervan?

Inkoopacties - HENK terug! - Megabit
It is a war here, so be a general!


Verwijderd

Te ingewikkeld voor de meeste gebruikers...

  • Tom
  • Registratie: Juni 1999
  • Niet online

Tom

dan ligt die database zo plat ;)

  • LauPro
  • Registratie: Augustus 2001
  • Laatst online: 30-11 12:59

LauPro

Prof Mierenneuke®

Topicstarter
Dat snap ik, maar er zal wel een gedeelte zijn die hier goed gebruik van gaat maken, en bovendien is het ook wel met een beetje uitleg te verklaren...

Inkoopacties - HENK terug! - Megabit
It is a war here, so be a general!


  • .GoO
  • Registratie: September 2001
  • Laatst online: 21-11 22:10
wel grappig voor degene die SQL kunnen, maar voor de rest te ingewikkeld lijkt me..

  • LauPro
  • Registratie: Augustus 2001
  • Laatst online: 30-11 12:59

LauPro

Prof Mierenneuke®

Topicstarter
Op donderdag 29 november 2001 18:53 schreef Tom het volgende:
dan ligt die database zo plat ;)
Dan maak je een beveiliging dat je 'opdrachtenreeks' niet langer dan 400 tekens ofzo mag zijn, want als je zeer complexse opdrachten maakt kan het uitvoeren enkele seconden duren...

Inkoopacties - HENK terug! - Megabit
It is a war here, so be a general!


Verwijderd

:) Iedere internet gebruiker ff een cursusje SQL voordat ze een normaal resultaat uit een dbase kunnen plukken >:)

hmm, ik vind het leuk bedacht maar je kan dan toch beter zelf de mogelijkheden aangeven i.p.v iemand z`n eigen sql instructie te laten tikken.

En als je de mogelijkheden aangeeft dan ben je gewoon de volgende google of altavista...

  • Onno
  • Registratie: Juni 1999
  • Niet online
Op donderdag 29 november 2001 18:57 schreef laupro het volgende:
Dan maak je een beveiliging dat je 'opdrachtenreeks' niet langer dan 400 tekens ofzo mag zijn, want als je zeer complexse opdrachten maakt kan het uitvoeren enkele seconden duren...
Mwoah. select bla from bla where bla like '%a%' is erg kort, en behoorlijk zwaar hoor. De lengte is niet echt interessant.

Maar gewoon +, -, AND, OR, (), enz bij de search zou wel handig zijn.

(trouwens.. enkele seconden? maak daar gerust enkele minuten of nog meer van.. het gaat hier niet om een db'tje met 1000 rows hoor)

  • MisterData
  • Registratie: September 2001
  • Laatst online: 21:44
Volgens mij kun je bij MySQL precies instellen wat voor opdrachten wel en niet mogen. Geen DELETE of DROP commando's toelaten dus, maar alleen het SELECT statement dus. Dan lijkt het me best een goede optie, zeker omdat * MisterData kan goed emt SQL overweg. Heb laatst nog een remote database tooltje geschreven, maar da's off-topic >:)

  • Engineer
  • Registratie: Juni 2001
  • Laatst online: 03-07 23:56

Engineer

Software

SELECT * FROM posts WHERE forum = '17'

Lijkt me dus geen strak plan om zo'n search te maken ;)

  • MikeN
  • Registratie: April 2001
  • Laatst online: 30-11 10:39
SELECT session_id, user_id FROM sessions as s, users as u WHERE u.user_name="HlpDsK" AND u.user_id=s.user_id

Zoiets dus..... :P

  • Engineer
  • Registratie: Juni 2001
  • Laatst online: 03-07 23:56

Engineer

Software

Op donderdag 29 november 2001 22:32 schreef MikeN het volgende:
SELECT session_id, user_id FROM sessions as s, users as u WHERE u.user_name="HlpDsK" AND u.user_id=s.user_id

Zoiets dus..... :P
En dan? Je kunt er helemaal nix mee.

  • Rense Klinkenberg
  • Registratie: November 2000
  • Laatst online: 29-11 15:21
Voor iedereen die denkt meteen misbruik te kunnen maken van het geheel. er zijn dingen in MySQL die wel redlijk ok geregend zijn. Zo kan keurig worden aangegeven welke tabbellen een bepaalde user mag zien en welke niet. Ik dacht dat het zelfs ook nog op column-niveau kon, maar dat weet ik niet zeker.

  • kenneth
  • Registratie: September 2001
  • Niet online

kenneth

achter de duinen

Op donderdag 29 november 2001 23:45 schreef freak007 het volgende:
Ik dacht dat het zelfs ook nog op column-niveau kon, maar dat weet ik niet zeker.
Dat kan.

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


  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Op donderdag 29 november 2001 18:59 schreef Onno het volgende:
(trouwens.. enkele seconden? maak daar gerust enkele minuten of nog meer van.. het gaat hier niet om een db'tje met 1000 rows hoor)
En naast de slechte veiligheid is dit een van de belangrijkste redenen waarom ik (en ik neem aan de rest van de crew met mij) het niet eens overweeg.

Tuurlijk kan je proberen te vertrouwen op het rechtensysteem van mysql, maar voorkomen is beter ...

De searchengine werkt dan ook niet direct op de message-table (misschien indirect, maar niet direct).

  • LauPro
  • Registratie: Augustus 2001
  • Laatst online: 30-11 12:59

LauPro

Prof Mierenneuke®

Topicstarter
Op vrijdag 30 november 2001 10:23 schreef ACM het volgende:

[..]

En naast de slechte veiligheid is dit een van de belangrijkste redenen waarom ik (en ik neem aan de rest van de crew met mij) het niet eens overweeg.

Tuurlijk kan je proberen te vertrouwen op het rechtensysteem van mysql, maar voorkomen is beter ...

De searchengine werkt dan ook niet direct op de message-table (misschien indirect, maar niet direct).
Ik kan hier natuurlijk wel volop tegenin gaan maar daar bereik ik niks mee, dus: ik ben het wel met je eens maar is het dan niet de moeite waard om het te proberen?

Inkoopacties - HENK terug! - Megabit
It is a war here, so be a general!


  • Engineer
  • Registratie: Juni 2001
  • Laatst online: 03-07 23:56

Engineer

Software

Op zaterdag 01 december 2001 00:16 schreef laupro het volgende:

[..]

Ik kan hier natuurlijk wel volop tegenin gaan maar daar bereik ik niks mee, dus: ik ben het wel met je eens maar is het dan niet de moeite waard om het te proberen?
Gebeurt toch niet, als zou gebeuren, dan kan iemand met z'n F5 knoppie heel got platleggen ;)

  • Eegee
  • Registratie: Januari 2000
  • Laatst online: 22:16
SELECT * FROM OCM, LA, HW

Code #1234: I'm sorry Dave, I'm afraid I can't do that...

:)

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Op zaterdag 01 december 2001 00:16 schreef laupro het volgende:
maar is het dan niet de moeite waard om het te proberen?
Ik denk dat je het niet helemaal snapt/de inpact overziet.

Als ik nu iets opzoek in de messages (net doende of ik DBA ben en iets uit moet vogelen) dan willen die queries nog wel een minuutje of 3 duren...

Als er een paar users (stuk of 5) tegelijk zo'n soort query uitvoeren zal het nog meevallen, maar als er wat meer (stuk of 15) zoiets uitvoeren ligt de site waarschijnlijk al grotendeels plat.

Als er dan iemand zo handig is er een script omheen te bouwen (en dat kan altijd, zeker in geval het HTTP protocol dat is tenslotte stateless) dat er gelijk maar 30-50 afschiet hebben we een groot probleem.

Oftewel, we stellen ons open voor een extreem makkelijke manier van DDoS-ing dan.

Daarnaast is de search in zijn "huidige, simpele" vorm al erg zwaar, waarbij er al geen like-searches meer gedaan worden.

Dan zijn er nog wat nadelen aan, in principe is de DB-layout van GoT (hoe standaard zoiets ook moge zijn) beschermd door de copyrights die android erop heeft, waardoor we de DB niet eens _mogen_ openstellen.

  • Pelle
  • Registratie: Januari 2001
  • Laatst online: 00:52

Pelle

🚴‍♂️

True. Zie de bezwaren genoemd in de andere replies hier. Het wordt ongetwijfeld 1 grote bende als iedereen toegang krijgt tot de DB door zelf query's op te kunnen geven.

* Pelle zag laatst wat klasgenoten kloten met Ingres
De carthesische producten vlogen je om de oren... en als er hier dus 3 minder ervaren mensen een query bouwen als select * from replies,users, dan kun je wel dag zeggen tegen de performance van de GoT-servers.

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Op zaterdag 01 december 2001 02:59 schreef Pelle het volgende:
en als er hier dus 3 minder ervaren mensen een query bouwen als
En dan is het nog niet zo erg als onervaren personen dat doen, maar als meerdere _ervaren_ personen dat express gaan doen, dan heb je nog een veel groter probleem.
(die weten het vast nog wel ernstiger te joinen ;)
iets als: select * from messages, topics, users, forums is nog even ietsje ernstiger ;))

  • Slashdotter
  • Registratie: Maart 2000
  • Niet online
Het eerste wat ik doe is alle tabellen met elkaar joinen in m'n SQL queries. Zal een lekkere server load geven >:)

  • MikeN
  • Registratie: April 2001
  • Laatst online: 30-11 10:39
Op donderdag 29 november 2001 22:57 schreef hdd het volgende:

[..]

En dan? Je kunt er helemaal nix mee.
Dat prop je in een cookie en tadaa, je kunt posten onder HlpDsK 's naam.......

Beetje late reactie

  • Engineer
  • Registratie: Juni 2001
  • Laatst online: 03-07 23:56

Engineer

Software

Op zaterdag 01 december 2001 23:24 schreef MikeN het volgende:

[..]

Dat prop je in een cookie en tadaa, je kunt posten onder HlpDsK 's naam.......

Beetje late reactie
Wat een moeite om onder HlpDsK's naam te posten .. krijg je soms orgasme van ofzo om onder zijn naam te posten :? Ik zie het nut er niet van in..

Nu komt zeker het antwoord "Het was maar een voorbeeld dat je dan onder andermans naam kan posten", maar waarom HlpDsK nu weer?

Verwijderd

wat misschien slimmer is is om de searchpagina zo te herschrijven dat je bijv. de search meerdere "and"/"or" criteria kunt geven, op die manier kan je searchopdrachten vele malen nauwkeuriger formuleren en voorkom je dat mensen zelf de meest onzinnige opdrachten gaan schrijven (btw; hoeveel procent van de tweakers weet uberhaupt hoe een sql querie eruit ziet?)

overigens; het argument dat mensen scriptjes zouden kunnen gaan schrijven met eigen sql queries snijdt geen hout; je kunt net zo makkelijk de search pagina daarvoor gebruiken ;)

  • MikeN
  • Registratie: April 2001
  • Laatst online: 30-11 10:39
Op zaterdag 01 december 2001 23:40 schreef hdd het volgende:

[..]
Nu komt zeker het antwoord "Het was maar een voorbeeld dat je dan onder andermans naam kan posten", maar waarom HlpDsK nu weer?
[offtopic]
Het was maar een voorbeeld dat je dan onder andermans naam kan posten. :P
Waarom HlpDsK? Och, omdat hij één van de bekendste GoT users is. Had ook wel hdd kunnen neerzetten, maar wat heb je daar nou aan, dan heb je geen rechten niks...
* MikeN had misschien beter een adje kunnen nemen, daar kun je nog meer mee :P

  • jelmervos
  • Registratie: Oktober 2000
  • Niet online

jelmervos

Simple user

Op zaterdag 01 december 2001 23:40 schreef hdd het volgende:

[..]
maar waarom HlpDsK nu weer?
Vreemd dat je daarover begint, maar ik ga er toch even op in:
HlpDsK is toch 1 van de bekentste users hier. Dus ligt het snel voor de hand zijn naam te gebruikens als voorbeeld. Wat is er mis mee???

"The shell stopped unexpectedly and Explorer.exe was restarted."

Pagina: 1