Yocto Project Discussions
 help / color / mirror / Atom feed
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 &lt; and &gt;]

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 &lt;raj.khem@gmail.com&gt;"

Do you have good idea to resolve this? Thanks.

>
> Cheers
> Paul
>

  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