【问题标题】:How to set Content-Security-Policy to allow botframework scripts in web.config file如何设置 Content-Security-Policy 以允许 web.config 文件中的 botframework 脚本
【发布时间】:2019-12-30 06:41:15
【问题描述】:

我正在将一个 Direcline 机器人添加到我的 SharePoint 页面中,我创建了一个内容编辑器 webpart 并在其中添加了一个 HTML 文件,在 html 文件中我使用以下代码调用该机器人,

         window.WebChat.renderWebChat(
        {
           directLine: window.WebChat.createDirectLine({
              token: 'tokenid'
           }),

           styleOptions,
           userID:emailid  ,
           username:user  ,
           locale: 'en-US',
           userAvatarInitials: 'iniital'
        },
        document.getElementById('webchat')
     );
     document.querySelector('#webchat > *').focus();

在加载机器人时,我在 chrome 中收到以下控制台错误,并且机器人无法正常工作。

拒绝连接到强>“WSS://directline.botframework.com/v3/directline/conversations/7BqkaBZaNQIKKjPc2VBAOw-h/stream水印= - &T = ew0KICAiYWxnIjogIlJTMjU2IiwNCiAgImtpZCI6ICJBT08tZXhGd2puR3lDTEJhOTgwVkxOME1tUTgiLA0KICAieDV0IjogIkFPTy1leEZ3am5HeUNMQmE5ODBWTE4wTW1ROCIsDQogICJ0eXAiOiAiSldUIg0KfQ.ew0KICAiYm90IjogIkNBU19OTFBfQm90IiwNCiAgInNpdGUiOiAiOVBrZGsxZFpfOU0iLA0KICAiY29udiI6ICI3QnFrYUJaYU5RSUtLalBjMlZCQU93LWgiLA0KICAibmJmIjogMTU3NzY4NzQ3NSwNCiAgImV4cCI6IDE1Nzc2ODc1MzUsDQogICJpc3MiOiAiaHR0cHM6Ly9kaXJlY3RsaW5lLmJvdGZyYW1ld29yay5jb20vIiwNCiAgImF1ZCI6ICJodHRwczovL2RpcmVjdGxpbmUuYm90ZnJhbWV3b3JrLmNvbS8iDQp9.PwUk4yQgpXZ_ohnTUAZzfnvG5NQTteaLvX5iDDPbC6nFrs_S7pICngcldf_R8ujPDFBQISSXNc3O7fF5ndX3Qqk8SHPl1jM2yOV0tkqxKu-C- 4OvTr2sDW_k7vmGpvNQQrbiAQvVrimNydrr3a6B2coQlvNes1CdZopsi01wnanDNmXErJBkQnCQ0-yQvkSSP7PiiC8eQewUsVT6onCsvBpwWj-CoZ6TBmWZdYUcGtZRx1WkqyZwKvRbKtyqvr_S7jBfZlL51DozYBEQ4_C0bt2R2p-7MTlE6egUi9ZTSTNklVlIFBqw7_hdWR92NLsWZqWewGUb2RvapYaTpWObuA”,因为它违反的F ollowing 内容安全策略指令:“default-src https: data: 'unsafe-inline' 'unsafe-eval'”。请注意,'connect-src' 没有显式设置,因此 'default-src' 用作备用。

因为在我的 web.config 文件中我确实有这个 CSP 标头。

<add name="Content-Security-Policy" value="default-src https: data: 'unsafe-inline' 'unsafe-eval'" />

删除此标头后,我就可以运行机器人并使其正常工作。但我不想在我的 web.config 文件中删除此标头,我想明确提及此 botframework URL,以便它允许机器人运行。

所以请帮助我如何明确设置此标头以允许所需的脚本运行机器人。

【问题讨论】:

  • 要么将wss: 添加到您的default-src 指令中,要么添加connect-src wss: 指令+值。
  • 非常感谢您的回复,我已经在我的 default-src 中添加了 wss: 并且它起作用了

标签: web-config botframework sharepoint-2013 content-security-policy direct-line-botframework


【解决方案1】:

感谢您通过添加 wss 来评论答案:问题已解决。

<add name="Content-Security-Policy" value="default-src https: data: wss: 'unsafe-inline' 'unsafe-eval'" />

【讨论】:

    猜你喜欢
    • 2021-09-04
    • 2023-03-20
    • 2018-03-06
    • 2021-05-08
    • 2020-01-18
    • 2019-02-16
    • 2018-09-05
    • 2019-09-05
    • 2019-07-09
    相关资源
    最近更新 更多