NetTalk Central
		NetTalk Web Server => Web Server - Ask For Help => Topic started by: Alberto on May 13, 2017, 10:20:50 AM
		
			
			- 
				Hi,
 Im using ntd.push in a js to open a form and $post to set session variables in nt depending on js events, like:
 
 // post to inform the NT form which date/time the user clicks on the js
 $.post("FullCalendarForm?datenow="+ (moment(date).format()) + "&viewnow=" + view.name);
 // push to open the NT form knowing how to prime date and time
 ntd.push('CalendarAppointment','','Calendar Entry Form',1,1,null,'FullCalendarForm',"+event.id+",'',0,'','','','btnCal','','');
 
 //post to change date/time when a user drags and drop an event
 $.post("FullCalendarForm?newstartdatetime="+ (moment(event.start).format()) + "&IdEvent=" + event.id);
 
 Is there any vulnerability on it?
 Anything a user can do knowing the js code?
 
 How to prevent a user to post
 FullCalendarForm?newstartdatetime="1800-01-01T12:00:00"&IdEvent=111
 and destroy the 111 event record?
 
 Thanks
 
 
 
 
- 
				Bruce? any help?
			
- 
				Hi Alberto,
 
 It's impossible to comment because security is a complex topic, which requires understanding of what you are doing and how an attack might occur. So it's not something that can be determined by looking at a little bit of code like this in isolation.
 
 >> How to prevent a user to postFullCalendarForm?newstartdatetime="1800-01-01T12:00:00"&IdEvent=111 and destroy the 111 event record?
 
 Generally speaking, I use the GetBrowseValue system to create indirection in the ID's so that ID's are not numeric and can't be guessed like this. That's why you'll see on a browse for example the row ID is a random string, not the primary key value. In the same way you could identify your data in the widget, when sending data to it, in the same way.
 
 Aside: one of the benefits of using GUIDs over Auto Numbering is that ID's cannot be guessed. If you are building web apps then this is a good thing to do. If you are using Auto Numbering then you run a risk that numbers can be guessed. Even if indirection is in play.
 
 Bruce
 
- 
				Thanks Bruce,
 
 I know how to make the _bdiv_ with GetBrowseValue
 Then I can send the IdEvent like this
 But how do I decifer it in the popup form for it to open the record?
 
 Thanks
- 
				No way,
 I realized that nt.pop sends exactly what you set in the row param using _bidv_
 First Im sendig the rowid, so in the form p_web.getvalue('_bidv_) is exactly the rowid
 So I think if bidv is a numbre you assume is the row nr an if tis no you asume _bidv_ is made with GetBrowseValue
 Then I send the EventId using GetBrowseValue but... the fullcalendar.js stop working
 I dont know why, may be it does not like the characters sent to the eventid field
 
 May be very usefull to know how GetBrowseValue and _bidv_ works in the form.
 
 I solve this encripting the row id, convert it to base64 and send it as eventid
 Then in the form I get the _bidv_ decript it and set again the new _bidv_ value
 
 Its working but I dont know where to put this routin to modify the _bidv_
 
 Regards