From: "Changqing Li" <changqing.li@windriver.com>
To: Paul Eggleton <paul.eggleton@linux.intel.com>
Cc: <yocto@lists.yoctoproject.org>
Subject: Re: [yocto] [error-report-web][PATCH V2] Add local.conf and auto.conf into error details
Date: Tue, 17 Dec 2019 11:48:30 +0800 [thread overview]
Message-ID: <b0968d53-5b8b-c3dc-d0cd-07ab0e817f01@windriver.com> (raw)
In-Reply-To: <5af91cd5-9249-e236-480b-fb3b4962bc0b@windriver.com>
correct the mail list to yocto@lists.yoctoproject.org
On 12/11/19 1:45 PM, Changqing Li wrote:
>
> 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-17 3:48 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 ` [yocto] " Changqing Li
2019-12-17 3:48 ` Changqing Li [this message]
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=b0968d53-5b8b-c3dc-d0cd-07ab0e817f01@windriver.com \
--to=changqing.li@windriver.com \
--cc=paul.eggleton@linux.intel.com \
--cc=yocto@lists.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