Yalnızca Global Düzey Güvenlik seçenekleriniz üzerinde sıkı bir denetim yapın (istemci sınıfı oluşturma, vb ...), Sınıf Düzeyinde Güvenlik seçenekleri (örneğin, _Installation girişlerini silme istemcileri devre dışı bırakabilirsiniz. Ayrıca, tüm sınıflar için kullanıcı alanı oluşturmayı devre dışı bırakabilirsiniz.) Ve hepsinden önemlisi, ACL'lere dikkat edin.
Genellikle ACL'lerin her zaman doğru olduğundan emin olmak için önceden tetikleme tetikleyicileri kullanıyorum. Bu nedenle, örneğin, UUser nesneleri kurtarma e-postasının bulunduğu yerdir. Diğer kullanıcıların birbirlerinin kurtarma e-postalarını görmesini istemiyoruz. Bu nedenle, _User sınıfındaki tüm nesneler sadece kullanıcı için okuma ve yazma ayarlarına sahip olmalıdır (public read false ve public write false ile). Bu şekilde yalnızca kullanıcının kendisi kendi satırlarıyla kurcalayabilir. Diğer kullanıcılar bu satırın veritabanınızda olduğunu bile fark etmeyecek.
Bazı durumlarda bunu daha da sınırlamanın bir yolu, bulut işlevlerini kullanmaktır. Bir kullanıcının başka bir kullanıcıya mesaj gönderebileceğini varsayalım. Bunu, iletinin içeriği ve iletiyi gönderen kullanıcıya ve iletiyi alacak olan kullanıcıya işaretçilerle yeni bir sınıf İletisi olarak uygulayabilirsiniz.
İletiyi gönderen kullanıcının onu iptal edebilmesi gerektiğinden ve iletiyi alan kullanıcının bu mesajı alabilmesi gerektiğinden, her ikisinin de bu satırı okuyabilmesi gerekir (bu nedenle ACL'nin okuma izinleri olması gerekir) her ikisi için de). Ancak, her ikisinden de mesajın içeriğini karıştırmak istemiyoruz.
İki seçeneğiniz var: Ya kullanıcıların bu satırda yapmaya çalıştıkları değişikliklerin geçerli olup olmadığını denetleyen bir beforeSave tetikleyicisi oluşturuyorsunuz veya iletinin ACL'sini hiç kimsenin yazma izni olmaması için ayarlıyorsunuz. ve kullanıcıyı doğrulayan ve sonra ana anahtarı kullanarak iletiyi değiştiren bulut işlevleri oluşturursunuz.
Nokta, uygulamanızın her parçası için bu hususları dikkate almanız gerekmektedir. Bildiğim kadarıyla, bunun bir yolu yok.
Bu da beni ilgilendirir. Birkaç bağlantı buldum (https://parse.com/questions/prohibit-user-from-changing-their-own-game-score ve https://parse.com/questions/javascript-sdk-security). Parse'nin ACL sisteminin muhtemelen benim özel uygulamanızın ihtiyaçları için yeterince güvenli olduğunu düşünüyorum, ancak diğer kullanımlar için bence, kilitlemeyi denemek için daha fazla güvenlik uygulaması öğrenmem gerekiyor. – Ryan