Ajax Security

Hi,

I am using Ajax in an web site. On the server side I use an aspx page (c# net 2.0) that get the Ajax request and do job then send xml response back to caller. Everything is good. But I will put user login with it and some important functions. Then some security issues must be placed in this action. First of al,l how can I prevent that all messages goes as plain text over network. I do not want to use https protocol if there is any other solutions. And by exposing Ajax all my api becomes available.

For example I have checkLogin function on the server side. If any one generate the same xml as like my javascript request function and make xmlhttp connection to the my aspx page(serv.aspx) then could get busy my server and could try to find password for a known user name. Like this I have some function for only use of member that authenticate.

For know I generate an key(16 char length) on server side  and past it to javascript on the page load by writing it directly. Like...


/*  client.aspx */
<script language="javascript">
var session_key = <%=Session["SessionKey"]%>
</script>
....

And embed this key into xml message. When the message comes to serv.aspx I check it if its is same with the Session["SessionKey"]. By this I hope no one send me illegal  xml requests outside the page(client.aspx). But I do not know for encryption of data that goes and come from server. If it can be good solution  at lest xml message body could be encrypt with the above security key and then decrypt on serv.aspx. If it, I need an algorithm for encrypt the data with key, written on javascript and the reverse algorithm to  
decrypt that data with the same key.

With those &#305; wrote about please sent me if there is a gap on security with this solution. If it is okey, I need the code for javascript and c# that encrypt/decrypt data.

thanks.



 
karanbaAsked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

alfredwhangCommented:
you should not expose your internal session variable that way!!! session variable is internal to your app and .NET encrypts that in the cookie for you and pass that to the browser.  there is no overhead required for AJAX...just procees as you nomally would like asp.net pages.  just remember to set authentication section up.  

You can think of AJAX like is like an iframe...to the server there is no way of determining wether the request was comming from the browser or from the AJAX.
0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
alfredwhangCommented:
btw http://www.ohdave.com/rsa/ has javascript to do rsa encryption for you...if you still want to go that route (like i have done it before)  i have some usable code for you but it is not really not worth the trouble.
0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
.NET Programming

From novice to tech pro — start learning today.