小编mkh*_*tib的帖子

为什么AngularJS在使用ng-bind-html时会删除数据属性?

我正在使用contentEditable div来使用户能够格式化他们的文章.我对html内容进行了一些处理并坚持下去.

ng-bind-html当观众想要阅读文章时,我用它来渲染结果.我不想使用,$sce.trustAsHtml因为我仍然希望AngularJS清理用户输入,因为我不信任所有输入.我想要的只是AngularJS清理以允许元素的一些属性.它似乎剥离了ID和数据属性.(但保留课程和头衔).

数据属性是否有害?攻击者如何使用它们来攻击最终用户?有没有办法安全地使用它们,让Angular不会剥离它们?

这是一个例子:

article.body = '<p data-guid="afasfa-afasfafas-faf-asasf" class="guid-tagged">Yes this is my article</p>';
<article ng-bind-html='article.body'></article>
Run Code Online (Sandbox Code Playgroud)

这是文章标签内的Angular输出(注意剥离的数据属性):

<p class="guid-tagged">Yes this is my article</p>
Run Code Online (Sandbox Code Playgroud)

谢谢

html javascript escaping angularjs

6
推荐指数
1
解决办法
3417
查看次数

是否可以将Docker hub公开托管的映像部署到Kubernetes Container Engine,而无需将其上传到Containers Registery?

这里仍然是Containers和Kubernetes的新手,但我想在Google Containers Engine上部署一个集群,并且想知道你是否可以使用docker hub托管图像来部署容器,所以在我的.yaml配置文件中我会说:

  ...
  image: hub.docker.com/r/my-team/my-image:latest
  ...
Run Code Online (Sandbox Code Playgroud)

这可能吗?或者必须在本地下载/构建映像,然后将其上传到Google Containers Registery?

非常感谢

docker kubernetes dockerhub google-kubernetes-engine google-container-registry

6
推荐指数
1
解决办法
4164
查看次数

具有多个服务类的云端点

我开始使用Google Cloud Endpoints,并且在指定多个服务类时遇到了问题.知道如何让这个工作吗?

ApiConfigurationError: Attempting to implement service myservice, version v1, with multiple classes that aren't compatible. See docstring for api() for examples how to implement a multi-class API.
Run Code Online (Sandbox Code Playgroud)

这就是我创建端点服务器的方式.

AVAILABLE_SERVICES = [
  FirstService,
  SecondService
]

app = endpoints.api_server(AVAILABLE_SERVICES)
Run Code Online (Sandbox Code Playgroud)

对于我正在做的每个服务类:

@endpoints.api(name='myservice', version='v1', description='MyService API')
class FirstService(remote.Service):
...

@endpoints.api(name='myservice', version='v1', description='MyService API')
class SecondService(remote.Service):
...
Run Code Online (Sandbox Code Playgroud)

这些中的每一个都完美地分开工作,但我不确定如何在组合它们时让它们工作.

非常感谢.

python google-app-engine google-cloud-endpoints

5
推荐指数
1
解决办法
1794
查看次数

单元测试AngularJS指令中的私有函数

如何对指令中定义的函数进行单元测试,如下所示myFunc

angular.module('myApp')
  .directive('myDir', [function () {

    var myFunc = function (arg) {
      // code in here.
    };

    return {
      restrict: 'A',
      scope: { },
      link: function (scope, element) {

      }
    };
  }]);
Run Code Online (Sandbox Code Playgroud)

或者,如何定义我不希望在指令之外公开的可测试指令特定函数?

javascript unit-testing angularjs angularjs-directive

5
推荐指数
1
解决办法
2968
查看次数

新服务工作者的sw-precache激活是否可以保证缓存破坏?

我使用sw-precache以及sw-toolbox允许的角度应用的缓存页面的离线浏览.

该应用程序通过节点快速服务器提供.

我们遇到的一个问题是,index.html有时似乎没有在缓存中更新,尽管其他资产已在激活新服务工作者时更新.

这会使用户过时index.html,在这种情况下尝试加载不再存在的版本化资产/scripts/a387fbeb.modules.js.

我不完全确定发生了什么,因为似乎在index.html已正确更新的不同浏览器上具有相同的哈希值.

在一个浏览器过时(有问题)Index.html

(缓存2cdd5371d1201f857054a716570c1564哈希)包括:

<script src="scripts/a387fbeb.modules.js"></script>
Run Code Online (Sandbox Code Playgroud)

在其内容中.(此文件不再存在于缓存中或远程上).

在另一个浏览器上更新(好)index.html

(缓存相同2cdd5371d1201f857054a716570c1564)包括:

<script src="scripts/cec2b711.modules.js"></script>
Run Code Online (Sandbox Code Playgroud)

这两个具有相同的缓存,尽管返回给浏览器的内容是不同的!

我应该怎么做?这是否意味着sw-precache当新的SW激活时,不保证原子缓存破坏?怎么能保护这个呢?

如果这些有帮助,这是生成的service-worker.js文件sw-precache.

注意:我意识到我可以使用remoteFirst策略(至少为index.html)来避免这种情况.但我仍然希望了解并找出一种使用cacheFirst策略来充分发挥性能的方法.

注2:我在其他相关问题中看到,可以更改缓存的名称以强制破坏所有旧缓存.但这似乎超越了sw-precache仅破坏更新内容的想法?这是要走的路吗?

注3:请注意,即使我很难重新加载网站被破坏的浏览器.该站点可以工作,因为它会跳过服务工作者缓存,但缓存仍然是错误的 - 服务工作者似乎没有激活 - 我猜是因为这个特定的SW已经被激活但是在正确破坏缓存时失败了.随后的非硬刷新访问仍然会看到破碎index.html.

javascript offline-caching service-worker sw-precache sw-toolbox

5
推荐指数
1
解决办法
1509
查看次数

对单个页面应用程序使用带有客户端URL路由的sw-precache

如何配置sw-precache index.html为多个动态路由服务?

这适用于具有index.html入口点的Angular应用程序.在当前设置允许该应用只能通过是accessable下线/.因此,如果用户/articles/list/popular在离线时作为入口点,他们将无法浏览它,并且会给您提供离线消息.(虽然在线时,他们将index.html作为入口点在所有请求上提供相同的文件)

可以使用dynamicUrlToDependencies来做到这一点吗?或者是否需要通过编写单独的SW脚本来处理?像下面这样的东西会怎么做?

function serveIndexCacheFirst() {
  var request = new Request(INDEX_URL);
  return toolbox.cacheFirst(request);
}

toolbox.router.get(
   '(/articles/list/.+)|(/profiles/.+)(other-patterns)', 
    serveIndexCacheFirst);
Run Code Online (Sandbox Code Playgroud)

web-technologies angularjs service-worker sw-precache

5
推荐指数
1
解决办法
1943
查看次数

如何使用Kubernetes在Cloud Containers Engine的Container开头运行脚本

我正在尝试使用Kubernetes在Google Cloud Containers上运行的docker容器的开头运行shell脚本.我的app目录的结构是这样的.我想在容器的开头运行prod_start.sh脚本(我不想把它作为Dockerfile的一部分).当前设置无法启动容器Command not found file ./prod_start.sh does not exist.知道如何解决这个问题吗?

app/
  ...
  Dockerfile
  prod_start.sh
  web-controller.yaml
  Gemfile
  ...
Run Code Online (Sandbox Code Playgroud)

Dockerfile

FROM ruby
RUN mkdir /backend
WORKDIR /backend
ADD Gemfile /backend/Gemfile
ADD Gemfile.lock /backend/Gemfile.lock
RUN bundle install
Run Code Online (Sandbox Code Playgroud)

网络controller.yaml

apiVersion: v1
kind: ReplicationController
metadata:
  name: backend
  labels:
    app: myapp
    tier: backend
spec:
  replicas: 1
  selector:
    app: myapp
    tier: backend
  template:
    metadata:
      labels:
        app: myapp
        tier: backend
    spec:
      volumes:
      - name: secrets
        secret:
          secretName: secrets
      containers:
      - name: my-backend
        command: ['./prod_start.sh']
        image: gcr.io/myapp-id/myapp-backend:v1 …
Run Code Online (Sandbox Code Playgroud)

docker kubernetes google-kubernetes-engine dockerfile

4
推荐指数
1
解决办法
5319
查看次数

有没有办法检查用户是否是AppEngine Cloud Endpoints中的管理员

我正在使用AppEngine Cloud Endpoints与Javascript客户端和Google+登录,我正在使用endpoints.get_current_user().有没有办法检查用户是否是AppEngine管理员?与users.is_current_user_admin()用户API 类似.

谢谢

google-app-engine google-cloud-endpoints

3
推荐指数
1
解决办法
1085
查看次数