## 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_capture.py
base64 = "eyJldmVudCI6IiRwYWdldmlldyIsInByb3BlcnRpZXMiOnsiZGlzdGluY3RfaWQiOiJlZWVlZWVlZ8+lZWVlZWUifX0="
        dict = self._dict_from_b64(base64)
        self.assertDictEqual(
            dict, {"event": "$pageview", "properties": {"distinct_id": "eeeeeeegϥeeeee",},},
        )
        # P with "+" in the base64
        self.client.post(
            "/track/", data={"data": base64, "api_key": self.team.api_token,},  # main diffe
        )
        arguments = self._to_arguments(patch_process_event_with_plugins)
        self.assertEqual(arguments["team_id"], self.team.pk)
        self.assertEqual(arguments["distinct_id"], "eeeeeeegϥeeeee")
        # P with " " in the base64 instead of the "+"
        self.client.post(
            "/track/",
            data={"data": base64.replace("+", " "), "api_key": self.team.api_token,},  # main diffe
        )
        arguments = self._to_arguments(patch_process_event_with_plugins)
        self.assertEqual(arguments["team_id"], self.team.pk)
        self.assertEqual(arguments["distinct_id"], "eeeeeeegϥeeeee")
    @patch("posthog.models.team.TEAM_CACHE", {})
    @patch("posthog.api.capture.celery_app.send_task")
    def test_js_library_underscore_sent_at(self, patch_process_event_with_plugins):