WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   Mysql radera rad (https://www.wn.se/forum/showthread.php?t=36963)

Hoel 2009-05-22 00:17

Citat:

Ursprungligen postat av Jonas
Citat:

Ursprungligen postat av tartareandesire
Hehe =)
Är du rädd om din databas så lämnar du inte ut någon URL innan du täppt till säkerhetshålen vilka som påpekats är enorma i nuläget.


Meeh, nu var du elak mot mig... :( :(

Jag skulle bara leka lite :(

Förresten, man kan inte klassa ovanstående kod som sårbar för SQL-Injections. Eftersom man behöver ju göra någon "injection" här ju... Vad skall man klassa det som?

Sjukt ful kanske?
Tack till alla som varnar för elaka Jonas med flera, men systemet är byggt för att användas lokalt.
Jag kan tillräckligt mycket om MYSQL för att veta att jag inte kan något om säkerhet. Man kan förmodligen sönderexploatera den, men tills ni hittar till min http://localhost så bryr jag mig inte spec. mkt :P

Min fråga blev en ickefråga efter
Citat:

Det vill du inte. Poängen med att ha auto_increment på en id-kolumn är att du ska få ett unikt ID för varje rad som läggs till i tabellen, och det blir ju inte unikt om du återanvänder gamla id:n.

Det låter som att den här frågan uppkom för att du försöker lösa ett annat problem/använda din id-kolumn på ett sätt som kanske inte är optimalt. Förklara gärna varför du vill att dina id:n ska minskas när du raderar en rad.

Kan som sagt inte spec. mycket om mysql. Jag använder ID raden som primärt index, och tänkte att det kanske skulle påverka på något sätt.
Det spelar alltså ingen roll att tal " försvinner" vid radering?

tartareandesire 2009-05-22 00:23

Jonas är inte elak =) Åtminstone tror jag inte det.

Såvida du av någon för mig okänd anledning inte behöver just dessa tal till något så spelar det ingen roll, nej. Det är helt normalt att det blir på det viset med auto increment-kolumner. Anledningen till att man använder en sådan kolumn är för att man ska kunna identifiera varje enskild rad på något vis.

Hoel 2009-05-22 00:35

Citat:

Originally posted by tartareandesire@May 22 2009, 00:23
Jonas är inte elak =) Åtminstone tror jag inte det.
Såvida du av någon för mig okänd anledning inte behöver just dessa tal till något så spelar det ingen roll, nej. Det är helt normalt att det blir på det viset med auto increment-kolumner. Anledningen till att man använder en sådan kolumn är för att man ska kunna identifiera varje enskild rad på något vis.

:P Jonas är säkert dalai lama på sin planet :)

Okej, det låter ju rimligt. Problemen uppstår ju när systemet använts i ett par månader. ID kommer då att börja vid runt 10 000. Föreställer mig att det kommer bli onödigt stora tal...

Alex 2009-05-22 00:56

Mm, hela fem bytes stora! =)... Det är inga större problem.

Hoel 2009-05-22 01:33

Citat:

Originally posted by Alex@May 22 2009, 00:56
Mm, hela fem bytes stora =)... Det är inga större problem.

:P lagringen är inga problem :)
Kändes dock snyggare att dra 3siffriga tal ur databasen en ett ID på en miljon, vilket det lär bli efter en del användande.

Tack för allas hjälp :)

Om jag nån gång skulle vilja lägga mitt bildsystem på en server som kan det kan www:as till, hur skickar man då best queries till <form> ? Jag förstår att sättet jag implementerat det på är så äckligt osäkert att det inte är sant :)

crazzy 2009-05-22 01:56

Du skickar inga queries via klienten, allt sköts server-side.

tartareandesire 2009-05-22 01:59

1. Undvik att använda något annat än en explicit url i action-attributet.

2. Skicka bara med id-numret. Nu har du en sql-sats där som vem som helst kan manipulera på klientsidan för att på så vis radera hela databasen eller vissa id:n om man tycker det är roligare.

BjörnJ 2009-05-22 04:41

Istället för auto_increment kan du använda MAX(id)+1 vid INSERT. Det blir dock fortfarande luckor i nummerserien om du tar bort rader mitt i, men du slipper att det orsakas luckor pga rader som är borttagna i slutet.

Jag skulle nog tycka att det skulle kännas lite läskigt att skicka data direkt från ett formulär till databasen även om man bara kör det lokalt.

WoxAnYv 2009-05-22 10:02

Du kan ju förvisso köra följande också ifall du vill omsortera dina id:n men jag vidhåller vad andra sagt, strunt i att använda id:t till något annat, vill du ha ett id som löper snyggt framåt på utsidan, mata ut det hjälp av php istället i din loop där utmatningen sker.

Kod:

ALTER TABLE table DROP id, ADD id INT UNSIGNED AUTO_INCREMENT NOT NULL, AUTO_INCREMENT = 1;

Jonas 2009-05-22 14:41

Citat:

Originally posted by Hoel@May 22 2009, 00:35
Jonas är säkert dalai lama på sin planet
Okej, det låter ju rimligt. Problemen uppstår ju när systemet använts i ett par månader. ID kommer då att börja vid runt 10 000. Föreställer mig att det kommer bli onödigt stora tal...

Måste försvara mig lite här nu.

1. Tanken från min sida var att se hur godtrogen du var. Allt för många ger ut uppgifter utan att veta exakt vem dom har att göra med. Det hela har ett begrepp "Social Engineering"
2. Jag skulle inte ens gått in på länken om du gett mig den, utan snarare postat här i tråden om att jag fick den av dig. Eftersom så som du har gjort det är livsfarligt.


Alla tider är GMT +2. Klockan är nu 00:09.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson