Products

Solutions

Resources

Partners

Community

About

New Community Website

Ordinarily, you'd be at the right spot, but we've recently launched a brand new community website... For the community, by the community.

Yay... Take Me to the Community!

Welcome to the DNN Community Forums, your preferred source of online community support for all things related to DNN.
In order to participate you must be a registered DNNizen

HomeHomeDevelopment and...Development and...Building ExtensionsBuilding ExtensionsModulesModulesAJAX SecurityAJAX Security
Previous
 
Next
New Post
1/24/2019 3:08 AM
 
Hello,

I recently finished my first DNN module using the MVC template from Chris Hammond (https://github.com/ChrisHammond/DNNTe...).

Now, I am trying to find a way to protect my AJAX POST calls, as they are accessible from outside the DNN platform.
You can test this by using a program like ARC (Advanced REST client).
If you enter the AJAX call URL and add the moduleid and tabid headers, the call will succeed, even if the user is not registered on your website.

Marking the controller method with the [DnnModuleAuthorize(AccessLevel = DotNetNuke.Security.SecurityAccessLevel.Admin)] or [DnnAuthorize(StaticRoles = "Administrators")] annotation does not seem to work, as the User accessing the method is only Administrator for the specific website, not a global Administrator.
The User.Roles variable holds the following entries: "Registered Users, Subscribers, Others".
Same for the [DnnModuleAuthorize(AccessLevel = DotNetNuke.Security.SecurityAccessLevel.Edit)] annotation. Although this seems to be a DNN bug, as the user is able to get into edit mode and is able to edit the module.

I also tried to check for the ModuleContext.EditMode bool to be true in my controller, but it is set to false for every AJAX call (even if the user has the right permissions). For non-AJAX calls, the bool is set correctly.

Is there any way to protect AJAX calls to only be accessible if the user has edit rights and is only administrator for the specific website?
 
Previous
 
Next
HomeHomeDevelopment and...Development and...Building ExtensionsBuilding ExtensionsModulesModulesAJAX SecurityAJAX Security


These Forums are dedicated to discussion of DNN Platform and Evoq Solutions.

For the benefit of the community and to protect the integrity of the ecosystem, please observe the following posting guidelines:

  1. No Advertising. This includes promotion of commercial and non-commercial products or services which are not directly related to DNN.
  2. No vendor trolling / poaching. If someone posts about a vendor issue, allow the vendor or other customers to respond. Any post that looks like trolling / poaching will be removed.
  3. Discussion or promotion of DNN Platform product releases under a different brand name are strictly prohibited.
  4. No Flaming or Trolling.
  5. No Profanity, Racism, or Prejudice.
  6. Site Moderators have the final word on approving / removing a thread or post or comment.
  7. English language posting only, please.
What is Liquid Content?
Find Out
What is Liquid Content?
Find Out
What is Liquid Content?
Find Out