py/HardcodedCredentials misses common credential patterns and flags usernames.
- Langage dominant
- CodeQL
- Étoiles
- 10.1k
- Forks
- 2.1k
- Merge moyen
- 2 j 15 h
- PR mergées (30 j)
- 141
Description
Some patterns are missing, for example:
```python
api_key = "sk-1234567890" # Missed: API key
db_url = "postgres://user:pass@host/db" # Missed: URL credentials
```
Second, I am not sure if the username is seen as a credential in a usual project, but this rule will flag the username.
This is beyond the definition in CWE-798 (
The product contains hard-coded credentials, such as a password or cryptographic key.)
```python
USERNAME = "admin" # Flagged
```
I also found that the rule will lose the taint in the following case:
```python
USERNAME = "road_runner"
PASSWORD = "insecure_pwd"
options = {"password": PASSWORD}
conn = client.connect(username=USERNAME, password=PASSWORD) # Flagged
log.debug("Options: %s", options) # Missing
conn = client.connect(options=options) # Still Missing
```
Guide de contribution
Ouvrir le guide de contribution
Piste de recherche
Commencez par la règle py/HardcodedCredentials et reproduisez les exemples d’API-key, de URL-credential, de username et d’options de l’issue. Examinez comment la règle modélise les motifs de credentials et propage le taint à travers le dictionnaire options. C’est terminé lorsque les cas de credentials manquants sont détectés sans traiter les usernames ordinaires comme des credentials, avec une couverture des exemples signalés.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- python
- Domaine
- security
- Type d'issue
- Bug
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Activité
- Calme
- Clarté
- Plutôt claire
- Accessibilité débutants
- 48/100