pyrit.prompt_target.HTTPTarget#
- class HTTPTarget(http_request: str, prompt_regex_string: str = '{PROMPT}', use_tls: bool = True, callback_function: Callable = None, max_requests_per_minute: int | None = None, **client_kwargs: Any | None)[source]#
Bases:
PromptTarget
HTTP_Target is for endpoints that do not have an API and instead require HTTP request(s) to send a prompt
- Parameters:
http_request (str) – the header parameters as a request (i.e., from Burp)
prompt_regex_string (str) – the placeholder for the prompt (default is {PROMPT}) which will be replaced by the actual prompt. make sure to modify the http request to have this included, otherwise it will not be properly replaced!
use_tls – (bool): whether to use TLS or not. Default is True
callback_function (function) – function to parse HTTP response. These are the customizable functions which determine how to parse the output
client_kwargs – (dict): additional keyword arguments to pass to the HTTP client
- __init__(http_request: str, prompt_regex_string: str = '{PROMPT}', use_tls: bool = True, callback_function: Callable = None, max_requests_per_minute: int | None = None, **client_kwargs: Any | None) None [source]#
Methods
__init__
(http_request[, ...])dispose_db_engine
()Dispose DuckDB database engine to release database connections and resources.
get_identifier
()Parses the HTTP request string into a dictionary of headers
send_prompt_async
(*, prompt_request)Sends prompt to HTTP endpoint and returns the response
Attributes
supported_converters
- parse_raw_http_request()[source]#
Parses the HTTP request string into a dictionary of headers
- Returns:
dictionary of all http header values body (str): string with body data url (str): string with URL http_method (str): method (ie GET vs POST) http_version (str): HTTP version to use
- Return type:
headers_dict (dict)
- async send_prompt_async(*, prompt_request: PromptRequestResponse) PromptRequestResponse [source]#
Sends prompt to HTTP endpoint and returns the response