webForum webForum sponsras med lina och serverplats av Binero AB

Gå tillbaka   webForum > Utveckling > Webbutveckling > ASP

ASP Diskussioner om Active Server Pages, med relaterade scriptspråk (klassisk asp).

Svar
 
Trådverktyg Visningsalternativ
Äldre 2005-08-31, 12:42   #1
pg
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
pg besöker inte forumet just nu   Svara med citat
Äldre 2005-08-31, 14:48   #2
spango
Medlem
 
spangos avatar
 
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.
spango besöker inte forumet just nu   Svara med citat
Äldre 2005-08-31, 17:07   #3
pg
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
pg besöker inte forumet just nu   Svara med citat
Äldre 2005-08-31, 21:20   #4
emission
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
emission besöker inte forumet just nu   Svara med citat
Svar
webForum > Utveckling > Webbutveckling > ASP

Trådverktyg
Visningsalternativ

Forumregler
Du får inte posta nya trådar
Du får inte posta svar
Du får inte bifoga filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är av
HTML-kod är av

Forumhopp


Alla tider är i GMT +1. Klockan är nu 18:49.


Powered by: vBulletin Version 3.8.6
Copyright © webForum