## Is your feature request related to a problem?

It's possible to brute-force passwords if you're particularly determined

## Describe the solution you'd like

Install `django-axes`: https://django-axes.readthedocs.io/en/latest/2_installation.html


## Describe alternatives you've considered



## Additional context



#### *Thank you* for your feature request – we love each and every one!

posthog/api/test/test_decide.py
filters={"properties": [{"key": "email", "value": "tim@posthog.com", "type": "person"}]},
            rollout_percentage=50,
            name="Filter by property",
            key="filer-by-property",
            created_by=self.user,
        )
        FeatureFlag.objects.create(
            team=self.team,
            filters={"properties": [{"key": "email", "value": "tim@posthog.com", "type": "person"}]},
            rollout_percentage=50,
            name="Filter by property 2",
            key="filer-by-property-2",
            created_by=self.user,
        )
        with self.assertNumQueries(4):
            response = self._post_decide()
        self.assertEqual(response["featureFlags"][0], "beta-feature")
        with self.assertNumQueries(4):
            response = self._post_decide({"token": self.team.api_token, "distinct_id": "another_id"})
        self.assertEqual(len(response["featureFlags"]), 0)
    def test_feature_flags_with_personal_api_key(self):
        key = PersonalAPIKey(label="X", user=self.user, team=self.team)
        key.save()
        Person.objects.create(team=self.team, distinct_ids=["example_id"])
        FeatureFlag.objects.create(
            team=self.team, rollout_percentage=100, name="Test", key="test", created_by=self.user,
        )
        response = self._post_decide({"distinct_id": "example_id", "personal_api_key": key.value})
        self.assertEqual(len(response["featureFlags"]), 1)