Visitar URL original
feat(plugins): add support for `httpx` in `B113` by mkniewallner · Pull Request #1060 · PyCQA/bandit · GitHub
Skip to content

feat(plugins): add support for httpx in B113 - #1060

Merged
ericwb merged 9 commits into
PyCQA:mainfrom
mkniewallner:feat/add-httpx-to-B113
Jun 25, 2024
Merged

ericwb merged 9 commits into
PyCQA:mainfrom
mkniewallner:feat/add-httpx-to-B113

Conversation

@mkniewallner

Copy link
Copy Markdown
Contributor

Resolves #1059.

Comment thread bandit/core/utils.py Outdated
@mkniewallner
mkniewallner requested a review from ericwb September 22, 2023 16:35
# Errors
requests.get('https://gmail.com')
requests.get('https://gmail.com', timeout=None)
requests.get('https://gmail.com', timeout=5)

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please don't remove these. They verify there's no regression when someone passes a timeout value

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

They have not been removed but moved under "Okay" section below, since those cases did not trigger violations.

httpx.put('https://gmail.com', verify=True)
httpx.put('https://gmail.com', verify=False)
httpx.patch('https://gmail.com', verify=True)
httpx.patch('https://gmail.com', verify=False)

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please just add a separate file rather than abuse this one

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Adding the check for missing timeouts on httpx made this test file report medium violations in the test due to missing timeout values. I did that with the intention of keeping only the violations related to SSL verification disabled. Would you prefer to keep the file as is and bump the number of reported violations here instead?

For the missing timeouts, I can still create a separate test case and example file if you prefer though. I wanted to stay consistent with what has been done in #861, but having a separate test case would probably be preferrable.

Comment thread bandit/plugins/request_without_timeout.py Outdated
Comment thread bandit/plugins/request_without_timeout.py Outdated
Comment thread bandit/plugins/request_without_timeout.py Outdated
@ericwb
ericwb merged commit 67ba251 into PyCQA:main Jun 25, 2024
@mkniewallner
mkniewallner deleted the feat/add-httpx-to-B113 branch June 25, 2024 14:27
charliermarsh pushed a commit to astral-sh/ruff that referenced this pull request Jul 3, 2024
## Summary

Bandit now also reports `B113` on `httpx`
(PyCQA/bandit#1060). This PR implements the same
logic, to detect missing or `None` timeouts for `httpx` alongside
`requests`.

## Test Plan

Snapshot tests.
KotlinIsland pushed a commit to KotlinIsland/basedpython that referenced this pull request May 1, 2026
## Summary

Bandit now also reports `B113` on `httpx`
(PyCQA/bandit#1060). This PR implements the same
logic, to detect missing or `None` timeouts for `httpx` alongside
`requests`.

## Test Plan

Snapshot tests.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add support for httpx in B113 (request_without_timeout)

3 participants