Skip to content

A workaround for all current Parse security features (CLP/PLP/ACL) #1013

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
DoneStuffGetting opened this issue Mar 13, 2016 · 22 comments
Closed

Comments

@DoneStuffGetting
Copy link

This post is about how secure the security features are in Parse Server/SDK. Awesome community. Love you guys!

I was hoping I could email someone about a security concern in using Parse Server and the SDK. Small gaps in security seems really scary now that I've gotten most of my service built. I'm not expecting Parse to be 100% secure, but just wanted to know if this was a real concern.

Thanks,
J

Sucks github removed their private messaging!

@flovilmart
Copy link
Contributor

I believe if there is a security concern that could impact all users, this should be publicly discussed and solved no?

@DoneStuffGetting
Copy link
Author

Is it possible to impersonate another PFUser via reverse engineering, random string generation, and injection? Or does PFUser verification for CLP/PLP/ACLs go beyond objIds and takes into account PFSessions/InstallationIds?

@flovilmart
Copy link
Contributor

with every requests, the authentication is done by the session token. The session token is validated across the records in the database. If a token is found matching, we load the according user. otherwise, the request is marked as not authenticated.

See the logic here: https://github.com/ParsePlatform/parse-server/blob/master/src/Auth.js#L46

@DoneStuffGetting
Copy link
Author

Thanks for the response and link. I was just being paranoid :) I thought logically that it wouldn't be so easy and that my gut/uninformed feeling was just wrong.

@mpc20001
Copy link

Hey guys I wrote an article on Parse Security - wanted to share it with everybody. Parse can be run securely.
https://www.back4app.com/docs/guest/parse-security

@flovilmart
Copy link
Contributor

I’m not sure if you can, but if you want we can also publish on blog.parseplatform.org. It’s a PR away.

@mpc20001
Copy link

That would be awesome!!!

@flovilmart
Copy link
Contributor

The blog repo is open and you just need to open a PR with your article, markdown formatted. If you need any help, feel free to reach out. Obviously, there should be a mention on the first line that it was originally published on back4app’s blog :)

@mpc20001
Copy link

@flovilmart do you have an email I can reach you at? wanted to discuss a few things with you.

@flovilmart
Copy link
Contributor

Hit me up! Florent at flovilmart dot com

@mpc20001
Copy link

I sent you an email.

@flovilmart
Copy link
Contributor

@mpc20001 I haven't received anything

@mpc20001
Copy link

@flovilmart i tried emaling you - try emailing me - viperxj7 at g mail dot com

@JacobJT
Copy link

JacobJT commented Aug 1, 2018

@mpc20001 Under Step 2.1, you say to disable Update and Create, but you disable Update and Delete, which should be right.

@mpc20001
Copy link

mpc20001 commented Aug 1, 2018

@JacobJT - Thanks, you are correct. I will fix it.

@chandandasgupta1975
Copy link

Mpc20001 your article is saying basically abandon the REST paradigm altogether for the interface to your parse application ... everything becomes POST requests invoking functions rather than intuitively matching verbs to resources.

@mpc20001
Copy link

You can use whatever verbs you want. But yes everything becomes a post request since that's how cloud calls work and is handled server side rather than relying on the client to provide you security. I'm saying writing your own api is a lot more secure than allowing free access to your database or relying on acls.

@flovilmart
Copy link
Contributor

Which defeats the point of using ACL’s and CLP. Not sure this is quite the good advice.

Sent with GitHawk

@mpc20001
Copy link

There's lots of situations where you will find ACL's don't work, or you paint yourself into a corner. I'm not saying you have to do it this way. I'm just saying it's worked for me and avoided any data breaches which is a common problem with systems built on parse.

@flovilmart
Copy link
Contributor

IMHO, the tutorial is a quite bad example of using this project, as you can achieve the same without cloud functions. But who am I to judge?

Sent with GitHawk

@chandandasgupta1975
Copy link

chandandasgupta1975 commented Feb 12, 2019 via email

@flovilmart
Copy link
Contributor

@nemodym the article suggests all implementation should be done through cloud functions. while this works, one could argue you'd be able to build the same with an express server or using mongoose. Using the masterKey is not how this project was designed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants