AmberCutie's Forum
An adult community for cam models and members to discuss all the things!

I built a better search and filter tool for Chaturbate

  • ** WARNING - ACF CONTAINS ADULT CONTENT **
    Only persons aged 18 or over may read or post to the forums, without regard to whether an adult actually owns the registration or parental/guardian permission. AmberCutie's Forum (ACF) is for use by adults only and contains adult content. By continuing to use this site you are confirming that you are at least 18 years of age.

Which feature(s) did you like the most?

  • Infinite scroll of rooms.

    Votes: 0 0.0%
  • Real-time preview.

    Votes: 0 0.0%
  • Change grid size.

    Votes: 0 0.0%
  • Watch up to 4 rooms simultaneously in full screen (SidebySide).

    Votes: 0 0.0%
  • Import your following list from Chaturbate and view them all on the site.

    Votes: 0 0.0%
  • Sort rooms by most or least views, age, or online time.

    Votes: 0 0.0%
  • Region blocking bypass.

    Votes: 0 0.0%

  • Total voters
    2
If you're curious btw this is my rules template i'm using. It's not fully complete but you can see the extent to which i've gone to make sure users can only use specific collections.
These need to be tested under different scenarios each time you make changes to the .rules file either manually or automatically to ensure they work.

I don't know if this has been done but i'm mentioning it because it seems like not much effort has been put into protecting the privacy of those who join the site

Either way. None of this matters at the moment because and i'll repeat... You don't have a working privacy policy!
Which means you need to either invite users to test, block specific regions from joining or take the site down.


JavaScript:
rules_version = '2';

service cloud.firestore {
  match /databases/{database}/documents {

    // Match all documents
    match /{document=**} {
      // Lock down the database by default
      allow read, write: if false;
    }

    match /users/{userId} {
      // Updates are possible if the user owns the collection & isn't updating the valus of any locked keys
      allow update: if isAuthenticated()
                    && isOwner(userId)
                    && isNotBanned()
                    && isTimestampValidated()
                    && lockKeys(['created', 'subscriptions']);
    }

    // Check a user has signed in and has verified their email
    function isAuthenticated() {
      return request.auth.uid != null && request.auth.token.email_verified == true;
    }
    // Check if the user is an owner from the name of the document or by the uid in the resources data
    function isOwner(userId) {
      return request.auth.uid == userId || request.auth.uid == resource.data.author_uid;
    }
    function isNotBanned() {
      return exists(/databases/$(database)/documents/bans/$(request.auth.uid)) == false;
    }
    // Prevent timestamp spoofing
    function isTimestampValidated() {
      return request.time == request.resource.data.created;
    }
    // Lock certain keys so they can only be updated by serverside functions
    function lockKeys(keysNotAllowed) {
      return request.resource.data.diff(resource.data).affectedKeys().hasOnly(keysNotAllowed) == false;
    }
  }
}
 
You say it's took you a year to make this and I understand that this must be disappointing hearing this but i'm in a similar scenario creating my first lewd NSFW site and I was able to find this information out relatively quickly within a few weeks.

Before you create a site or application next time make sure to research the competition and find a market. Acknowledge that creating something also means doing all the boring legal stuff that nobody wants to do as well as the coding. Share updates on your project and ask for feedback. If you had done these things you wouldn't be in this scenario. Most importantly though above all else. Understand your audience. If you want Cam Models to be part of the demographic that uses your site then communicate with us and don't message immediately after the site is published. Take in feedback and work with it before spending a year on a project.

I hope you haven't made a large loss but as I say you cannot keep this site up. Also consider that advertising to watch "Free Webcam Recordings" is really not a good idea on a forum that supports Cam Models.
 
It's very unlikely. I can see the site uses email verification with Firebase. Having used the tool myself I know it's very secure.
Yes, I'm using Firebase and all the information I write to their database is encrypted with Fernet, so Google doesn't have access, as the key to decrypt it only exists on my server. Only the email isn't encrypted, because I haven't found a way to do that in Firebase, since Authentication is separate from the Database and would prevent me from implementing login with Google or other platforms.

The security of a site is also only as secure as the login credentials of the owner. If you haven't setup 2FA for your google account for example i'd be very hesitant to join knowing you're using Firebase.
Regarding the security of my account, I use a password manager (KeePassXC) with a password as long as possible and including all types of characters KeePass allows to prevent any kind of brute force attack. My passwords for each site are also different to prevent a leak on one site from compromising my credentials on others. For two-factor authentication, I have it set up on my Yubikey 5c.

I don't know if this has been done but i'm mentioning it because it seems like not much effort has been put into protecting the privacy of those who join the site
Information security is the area I'm studying to work in professionally, and I've tried to keep the site as secure as possible within my capabilities. What I haven't delved into deeply are the legal formalities.
Either way. None of this matters at the moment because and i'll repeat... You don't have a working privacy policy!
Privacy policy templates are fine as long as you actually read it and modify it to fit what you are doing.
I've added a privacy policy to the website, answered the questionnaires that some sites offer and used the generated templates. It's not yet perfect, but I believe it makes the site functional.
 
  • Like
Reactions: KingMarti
Although I suggested you don't need a lawyer to write a privacy policy you can't do it in a day that's insane. These are both pretty questionable statements. One of which is false, you do handle sensitive information. The Stripe mention is weird as well, you don't accept payments on the site it seems. Stripe is also very anti Sex Worker, Camming, anything lewd etc... so their is no way you're going to be able to keep using Stripe if that's a plan for the future.

I should note this is after looking for about 20 seconds. I haven't read the entire thing yet.
 

Attachments

  • Screenshot 2024-07-24 at 07.29.46.png
    Screenshot 2024-07-24 at 07.29.46.png
    77 KB · Views: 3
Ok lets break this down...

Upon your request to terminate your account, we will deactivate or delete your account and information from our active databases. However, we may retain some information in our files to prevent fraud, troubleshoot problems, assist with any investigations, enforce our legal terms and/or comply with applicable legal requirements.
You either deactivate or delete the account you need to state which as the 2 are very different things. What information do you need to retain and why, you need to be more specific.

Personal Information Provided by You. The personal information that we collect depends on the context of your interactions with us and the Services, the choices you make, and the products and features you use. The personal information we collect may include the following:
  • email addresses
  • passwords
  • black list
  • following list
  • session id
You need to state how the passwords are stored. I know because you're using Firebase it's encrypted but the user doesn't know that.

The categories of third parties we may share personal information with are as follows:
  • Ad Networks
  • Affiliate Marketing Programs
  • AI Platforms
  • Cloud Computing Services
  • Communication & Collaboration Tools
  • Data Analytics Services
  • Data Storage Service Providers
  • Finance & Accounting Tools
  • Government Entities
  • Order Fulfillment Service Providers
  • Payment Processors
  • Performance Monitoring Tools
  • Product Engineering & Design Tools
  • Retargeting Platforms
  • Sales & Marketing Tools
  • Social Networks
  • Testing Tools
  • User Account Registration & Authentication Services
  • Website Hosting Service Providers

I'm sorry what. You can't just list everything under the sun. There has to be a legitimate reason for using each service and for some of these you should explain why it's a requirement to use them.

[See Attached picture]

So hold up a second you say you're collecting the following

Gender, age, date of birth, race and ethnicity, national origin, marital status, and other demographic data

including a literal Geolocation for the person signing up. I'm almost certain this can't be correct.

also what the heck is this...
We have disclosed the following categories of personal information to third parties for a business or commercial purpose in the preceding twelve (12) months:
  • Category A. Identifiers
  • Category B . Characteristics of protected classifications under state or federal law
  • Category C . Commercial information
  • Category E . Internet or other electronic network activity information
  • Category F . Geolocation data
  • Category J . Inferences drawn from collected personal information
 

Attachments

  • Screenshot 2024-07-24 at 07.45.55.png
    Screenshot 2024-07-24 at 07.45.55.png
    285.7 KB · Views: 1
Keep in mind i'm a GDPR newb and if i'm able to pick this out immediately then someone with more experience will tear it to shreds. When I said research GDPR I meant read the full document to begin with https://gdpr-info.eu/ and then go into depth for stuff you don't understand. Learning this wont take a day it should take Weeks or Months.
 
Regarding the security of my account, I use a password manager (KeePassXC) with a password as long as possible and including all types of characters KeePass allows to prevent any kind of brute force attack. My passwords for each site are also different to prevent a leak on one site from compromising my credentials on others. For two-factor authentication, I have it set up on my Yubikey 5c.
Ok brilliant. Now state this in your privacy policy. Knowing how your account, especially if you are the sole owner is protected will explain one of your security procedure's and give confidence that you are taking active steps to make sure data wont get leaked. (There are problems with simply saying a longer password must be more secure but i've explained them below).

Yes, I'm using Firebase and all the information I write to their database is encrypted with Fernet, so Google doesn't have access, as the key to decrypt it only exists on my server. Only the email isn't encrypted, because I haven't found a way to do that in Firebase, since Authentication is separate from the Database and would prevent me from implementing login with Google or other platforms.
This shows a fundamental misunderstanding of Firebase. If you're using Firestore and Authentication services this information is encrypted at rest. After all Anonymised and Encrypted are 2 different things. For example when storing ip addresses a good practice is to anonymise them using something like a SHA256 function in a way that makes sure they can't be retrieved by yourself or other users but can be compared to check for stuff like rate limiting or banning specific IP addresses for suspicious activity.

This would be a good explain of using the minimal amount of sensitive information to complete a task and is a fundamental reason why you design a site with the privacy policy in mind, not the other way around. You can't do this now so you should be retroactivity considering why you store information and how it is processed.

As for the emails not being encrypted. they are, and by logging into firebase only you alone can see it. This is why appropriate security rules are so important for Firebase above all else. I doubt you don't need Fernet at all really.

Regarding the security of my account, I use a password manager (KeePassXC) with a password as long as possible and including all types of characters KeePass allows to prevent any kind of brute force attack#
If you had read the GDPR documentation you would understand that security through just picking a long password is a really dumb approach. For obvious reasons you assume the worst can and will happen and account for that instead. Having a long password doesn't mean much because the main risk here is someone stealing your password, through a keylogger for example. Now using 2FA is a pretty useful tool because it's an extra layer of security, it's good you're using this. You need to have ways of reporting your account though or an automatic deletion of your account if it becomes compromised if you get locked out. For google accounts this is easy to setup.

This is especially important since you seem to be the sole owner of the site.

I haven't gone into the details about how it's possible a user might file a GDPR complaint and how you need to understand the procedures for handling this as well. Similarly this post is way too long now for my own sanity but if you don't already know (you might) a user should be able to request the information you store on them as well.
 
Last edited:
It's getting kind of concerning this persistence to keep the site up as well knowing damn well i've told you that you didn't have a Privacy Policy and your solution is to draft one in a single day.
Fortunately I neither have the time nor patience to file a GDPR complaint but keep in mind that for a NSFW site if people don't like what you're doing or you have competition and they want to take you down they may file a GDPR complaint. This has happened before for an internet radio site I used to be a part of it and it can be devastating.

I highly recommend you drop the project temporarily and take time to understand how to formulate a working Privacy Policy and see if you can fix some of the other issues that have been raised by the members of this community.
 
It's getting kind of concerning this persistence to keep the site up as well knowing damn well i've told you that you didn't have a Privacy Policy and your solution is to draft one in a single day.
Fortunately I neither have the time nor patience to file a GDPR complaint but keep in mind that for a NSFW site if people don't like what you're doing or you have competition and they want to take you down they may file a GDPR complaint. This has happened before for an internet radio site I used to be a part of it and it can be devastating.

I highly recommend you drop the project temporarily and take time to understand how to formulate a working Privacy Policy and see if you can fix some of the other issues that have been raised by the members of this community.
⬆️⬆️⬆️

What Mia said.