mirror of
https://github.com/httprunner/httprunner.git
synced 2026-07-09 06:23:52 +08:00
fix: xss in response json
This commit is contained in:
@@ -266,8 +266,8 @@
|
|||||||
{% else %}
|
{% else %}
|
||||||
{{ value }}
|
{{ value }}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% elif key == "text" %}
|
{% elif key in ["text", "json"] %}
|
||||||
<pre>{{ req_resp.response.text | e }}</pre>
|
<pre>{{ value | e }}</pre>
|
||||||
{% else %}
|
{% else %}
|
||||||
{{ value }}
|
{{ value }}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|||||||
@@ -185,10 +185,6 @@ class TestHttpRunner(ApiServerUnittest):
|
|||||||
{
|
{
|
||||||
"config": {
|
"config": {
|
||||||
'name': "post data",
|
'name': "post data",
|
||||||
'request': {
|
|
||||||
'base_url': '',
|
|
||||||
'headers': {'User-Agent': 'python-requests/2.18.4'}
|
|
||||||
},
|
|
||||||
'variables': []
|
'variables': []
|
||||||
},
|
},
|
||||||
"teststeps": [
|
"teststeps": [
|
||||||
@@ -198,6 +194,7 @@ class TestHttpRunner(ApiServerUnittest):
|
|||||||
"url": "{}/post".format(HTTPBIN_SERVER),
|
"url": "{}/post".format(HTTPBIN_SERVER),
|
||||||
"method": "POST",
|
"method": "POST",
|
||||||
"headers": {
|
"headers": {
|
||||||
|
"User-Agent": "python-requests/2.18.4",
|
||||||
"Content-Type": "application/json"
|
"Content-Type": "application/json"
|
||||||
},
|
},
|
||||||
"data": "abc"
|
"data": "abc"
|
||||||
@@ -508,6 +505,43 @@ class TestHttpRunner(ApiServerUnittest):
|
|||||||
# self.runner.run(testcase_file_path)
|
# self.runner.run(testcase_file_path)
|
||||||
# self.assertTrue(self.runner.summary["success"])
|
# self.assertTrue(self.runner.summary["success"])
|
||||||
|
|
||||||
|
def test_html_report_xss(self):
|
||||||
|
testcases = [
|
||||||
|
{
|
||||||
|
"config": {
|
||||||
|
'name': "post data"
|
||||||
|
},
|
||||||
|
"teststeps": [
|
||||||
|
{
|
||||||
|
"name": "post data",
|
||||||
|
"request": {
|
||||||
|
"url": "{}/anything".format(HTTPBIN_SERVER),
|
||||||
|
"method": "POST",
|
||||||
|
"headers": {
|
||||||
|
"Content-Type": "application/json"
|
||||||
|
},
|
||||||
|
"json": {
|
||||||
|
'success': False,
|
||||||
|
"person": "<img src=x onerror=alert(1)>"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"validate": [
|
||||||
|
{"eq": ["status_code", 200]}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
tests_mapping = {
|
||||||
|
"testcases": testcases
|
||||||
|
}
|
||||||
|
report_path = self.runner.run(tests_mapping)
|
||||||
|
with open(report_path) as f:
|
||||||
|
self.assertIn(
|
||||||
|
""<img src=x onerror=alert(1)>"}'",
|
||||||
|
f.read()
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
class TestApi(ApiServerUnittest):
|
class TestApi(ApiServerUnittest):
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user