From: "Changqing Li" <changqing.li@windriver.com>
To: Paul Eggleton <paul.eggleton@linux.intel.com>
Cc: <yocto@yoctoproject.org>
Subject: Re: [yocto] [error-report-web][PATCH V2] Add local.conf and auto.conf into error details
Date: Wed, 11 Dec 2019 13:45:00 +0800 [thread overview]
Message-ID: <5af91cd5-9249-e236-480b-fb3b4962bc0b@windriver.com> (raw)
In-Reply-To: <9315981.NtHHCumI8A@shodan>
On 11/13/19 6:36 PM, Paul Eggleton wrote:
> Hi Changqing,
>
> Some comments below.
>
> On Tuesday, 12 November 2019 9:32:53 PM NZDT changqing.li@windriver.com wrote:
>> From: Changqing Li <changqing.li@windriver.com>
>>
>> Support to display local.conf and auto.conf on error report web.
>> Here is commit in oe-core, which add local.conf/auto.conf into error report
>> https://git.openembedded.org/openembedded-core/commit/?id=7adf9707c04d8ef6bcd8d8bda555687f705e6ee6
>>
>> This commit is related to YOCTO #13252
>>
>> Signed-off-by: Changqing Li <changqing.li@windriver.com>
>> ---
>> Post/0006_auto_20190917_0419.py | 24 ++++++++++++++++++++++++
>> Post/models.py | 2 ++
>> Post/parser.py | 2 ++
>> Post/test.py | 2 ++
>> templates/error-details.html | 10 ++++++++++
>> test-data/test-payload.json | 4 +++-
>> 6 files changed, 43 insertions(+), 1 deletion(-)
>> create mode 100644 Post/0006_auto_20190917_0419.py
>>
>> diff --git a/Post/0006_auto_20190917_0419.py b/Post/0006_auto_20190917_0419.py
>> new file mode 100644
>> index 0000000..827944e
>> --- /dev/null
>> +++ b/Post/0006_auto_20190917_0419.py
> Could you please give the migration a proper name (-n option to makemigrations) e.g. local_conf_auto_conf
OK, thanks
>
>> --- a/Post/models.py
>> +++ b/Post/models.py
>> @@ -43,6 +43,8 @@ class Build(models.Model):
>> LINK_BACK = models.TextField(max_length=300, blank=True, null=True)
>> ERROR_TYPE = models.CharField(max_length=20, choices=ERROR_TYPE_CHOICES,
>> default=ErrorType.RECIPE)
>> + LOCAL_CONF = models.TextField(max_length=int(settings.MAX_UPLOAD_SIZE), default="")
>> + AUTO_CONF = models.TextField(max_length=int(settings.MAX_UPLOAD_SIZE), default="")
> I'm not sure this is practical, for two reasons:
>
> 1) Field sizes should not be variable like this; changing the MAX_UPLOAD_SIZE value after the fact would not change the database structure
> 2) The value could never actually reach MAX_UPLOAD_SIZE because the overhead of the surrounding JSON would block it from being uploaded if it did
>
> However, since this is a TextField we don't actually have to specify a max_length (for a TextField max_length only actually affects the frontend, and we don't expose this field in a form) so it can just be removed.
>
> Another thing, instead of default="" you should use blank=True.
OK, I will fix this.
>
>
>> + {% if detail.BUILD.LOCAL_CONF != "" %}
>> + <dt></a>Local Conf:</dt>
>> + <dd style="white-space: pre-wrap;">{{ detail.BUILD.LOCAL_CONF | safe }}</dd>
>> + {% endif %}
>> +
>> + {% if detail.BUILD.AUTO_CONF != "" %}
>> + <dt></a>Auto Conf:</dt>
>> + <dd style="white-space: pre-wrap;">{{ detail.BUILD.AUTO_CONF | safe }}</dd>
>> + {% endif %}
> We cannot use the safe filter here - doing so could open up an XSS vulnerability, since anyone can upload anything to the error-report application and the content could include links or other malicious HTML data. We should allow it to be auto-escaped. Is there a particular issue you were using this to solve?
This is for resolve a problem when there is angle brackets in
local.conf/auto.conf.
I have a patch in oe-core [OE-core] [PATCH] report-error.bbclass:
replace angle brackets with < and >]
when we have below content in local.conf or auto.conf:
BUILDHISTORY_COMMIT_AUTHOR ?= "Khem Raj<raj.khem@gmail.com>"
send-error-report will fail with "HTTP Error 500: OK"
error-report-web do rudimentary check on all fields that are
passed to the graphs page to avoid any XSS happening, if contains
'<', the server will return error(Invalid characters in json).
fixed by use escape of <> to replace it.
NOTE: with this change, error-report-web need to add filter 'safe'
for the string wanted to display to avoid further HTML escaping
prior to output. Below is how the content displayed on webpage:
with the filter 'safe':
BUILDHISTORY_COMMIT_AUTHOR ?= "Khem Raj<raj.khem@gmail.com>"
without the filter 'safe':
BUILDHISTORY_COMMIT_AUTHOR ?= "Khem Raj <raj.khem@gmail.com>"
Do you have good idea to resolve this? Thanks.
>
> Cheers
> Paul
>
next prev parent reply other threads:[~2019-12-11 5:45 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-11-12 8:32 [error-report-web][PATCH V2] Add local.conf and auto.conf into error details changqing.li
2019-11-13 10:36 ` Paul Eggleton
2019-12-11 5:45 ` Changqing Li [this message]
2019-12-17 3:48 ` [yocto] " Changqing Li
2020-01-04 21:06 ` Khem Raj
2020-01-06 1:02 ` Changqing Li
2020-02-14 2:42 ` Changqing Li
2020-02-14 16:18 ` Armin Kuster
2021-03-22 15:32 ` Richard Purdie
[not found] ` <166EB3F47EB07A94.1968@lists.yoctoproject.org>
2021-03-22 17:57 ` Richard Purdie
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=5af91cd5-9249-e236-480b-fb3b4962bc0b@windriver.com \
--to=changqing.li@windriver.com \
--cc=paul.eggleton@linux.intel.com \
--cc=yocto@yoctoproject.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox