![]() |
|
|
|||||||
| ASP Diskussioner om Active Server Pages, med relaterade scriptspråk (klassisk asp). |
![]() |
|
|
Trådverktyg | Visningsalternativ |
|
|
#1 |
|
Medlem
Registrerad: 2002-02-05
Inlägg: 35
Lösningar: 0 |
Synpunkter om SQL i session
Hej
Jag har en sida där man kan logga in och skriva till en databas via ett flertal olika formulär. Databasen innehåller relationer i mer är 2 nivåer så för varje submit görs en kontroll av ID i högsta nivån. Nu har jag kommit på att, i stället för en massa if-satser, är väldig smidigt att lägga SQL-strängen för kontrollen i ett sessionvärde. Tekniskt funkar det men frågan är om det innebär några svagheter med avseende på säkerhet m.m. Som jag har fattat det så lagrar sessen en cookie-referens hos klienten så det borde inte vara några problem. Därför jag undrar om det är någon som har testat detta och vad ni har för synpunkter. Ex. <form method="post" action="update.asp"> Formuläret </form> <% Dim SQLReference SQLReference = "SELECT COUNT(*) AS nRS " SQLReference = SQLReference & " FROM TopObject " SQLReference = SQLReference & " WHERE TopObjectID = " & TOID SQLReference = SQLReference & " AND SubObjectID = " & SOID Session("SQLReference") = SQLReference %> Efter submit körs SQL-satsen och om värdet på nRS är > 0 så sparas datan från formuläret. Tackar på förhand för ev. synpunkter /PG |
|
|
|
|
|
#2 |
|
Medlem
Registrerad: 2000-06-02
Ort: Söders höjder
Inlägg: 6 147
Lösningar: 755 |
Nej, några säkerhetsproblem bör det egentligen inte vara, men jag kan inte för mitt liv förstå varför det är så smidigt att lägga SQL-strängen i sessionsobjektet? Vore det inte bara smartare att lägga in resultatet av kontrollen där i stället?
__________________
Vissa dagar är man asfalten, andra dagar är man ångvälten. Vissa dagar är man myggan, andra dagar är man vindrutan. XML är som våld; löser det inte ens problem betyder det att man använder för lite. |
|
|
|
|
|
#3 |
|
Medlem
Registrerad: 2002-02-05
Inlägg: 35
Lösningar: 0 |
Tack för svaret.
Jo det har du nog rätt i. Men jag vill ändå spåna lite till i ämnet. Så här är denna lösning uppbyggt. Vid inloggning på kontot sätts en session som vanligt, vi kallar den UserID. Normalt brukar jag inte ha några fler sessionvärden eftersom allt kan kontrolleras mot detta ID genom t.ex dubbla INNER JOIN. Därefter kan användaren öppna olika formulär med Rich Edit funktion. I Rich edit har jag lagt en knapp som öppnar ett nytt fönster för bildhantering. I detta fönster kan man skicka och ta bort bilder varvid flera anrop till DB sker innan själva submit av Rich editformuläret. Varje händelse i bildfönstret ska kontrolleras mot UserID. Det är nu jag får behovet av att lagra SQL i en sessionparameter. Detta för att jag vill kunna använda samma Rich Edit lösning oberoende hur DB-tabellerna ser ut. När Rich edit formuläret öppnas får jag därför lagra SQL satser som sedan kan nås av fönstret med bildhanteringen. Man skulle kanske kunna göra kontrollen när formuläret laddas som du sa och sätta resultatet t.ex Session("IDCheck") = True. Sedan använder man detta värde som kontroll i bildhanteringsfönstret. En session-parameter kan väl knappast ändras ev en kunnig klient. Hade man däremot lagrat värdet i en input type="hidden" eller ännu värre, som en querystring parameter så är man nog farligt ute. Jag ska fundera lite till men det lutar nog åt Session("IDCheck") = True. /PG |
|
|
|
|
|
#4 |
|
Medlem
Kalebass Registrerad: 1999-12-09
Ort: Norrköping
Inlägg: 6 095
Lösningar: 1232 |
Ja, det finns ingen anledning att lagra SQL i Session, oavszet om det är säkert eller inte. UserID i session är det ända du behöver
|
|
|
|
![]() |
| Trådverktyg | |
| Visningsalternativ | |
|
|