小编fst*_*str的帖子

使用Chrome扩展程序中的AJAX请求检测URL是否支持HTTP2?

我希望用户能够将其网站网址输入到Chrome扩展程序中的输入框中,Chrome扩展程序将使用AJAX请求或其他类似内容来检测并告知用户URL后面的服务器是否支持发送响应通过HTTP2.这可能吗?

也许WebRequest有办法获取这些信息?还是新的Fetch API?你的请求能否以某种方式告诉服务器只能理解HTTP2回复?我看不出明显的方式.

我知道你可以使用window.chrome.loadTimes().connectionInfo获取当前页面的协议,但这需要加载我不想做的整个页面.

示例URLS:

通过HTTP2发送:https://cdn.sstatic.net/

通过HTTP 1.1提供:https://stackoverflow.com/

javascript ajax google-chrome google-chrome-extension http2

16
推荐指数
1
解决办法
1023
查看次数

从PHP启动交互式SSH bash会话

我正在使用PHP为常见的服务器管理任务编写快捷方式(我使用的是deployer.org,但这不重要).我想在SSH连接到服务器后添加一个用于启动交互式bash提示的任务.例如,您将运行"./dep ssh"(其中"dep"是PHP脚本),这与从终端运行例如"ssh user @ server"具有相同的效果.有没有办法在PHP中执行此操作?对于上下文,我有大约5台服务器,我经常想要SSH,或读取日志,或复制文件等,所以我想要快捷方式.

我能得到的最接近的是这样的:

$ph = popen("bash","w");
  while(($line = fgets(STDIN)) !== false){
      fputs($ph,$line);
 }
 pclose($ph);
Run Code Online (Sandbox Code Playgroud)

这允许您向bash发送命令和从bash发送命令,但是您没有看到正常的bash提示或获取选项卡完成.我需要这样的东西,但所有正常的bash功能都有效.

php bash shell

9
推荐指数
1
解决办法
755
查看次数

包含名称中的破折号的自定义角度指令不起作用

我编写了以下Angular指令,它将为所有子节点添加"required"属性:

.directive("requireall", function($compile) {
  return {
    restrict: 'A', //only want it triggered for attributes
    compile: function(element, scope) {
      // Prevent infinite loop on compile
      element.removeAttr("requireall");

      var allChildren = element.find('*');
      allChildren.attr('required', 'required');
      $compile(element)(scope);
    }
  }
});
Run Code Online (Sandbox Code Playgroud)

我真的想称它为"require-all",但是如果我重命名它就不再适用了.为什么"requireall"工作但不是"require-all"?

angularjs angularjs-directive

8
推荐指数
2
解决办法
5515
查看次数

将TypeScript与外部JS文件捆绑在一起(例如,node_modules)

我可以成功地将我的Typescript项目捆绑在一起,并使用例如将其保存为单个文件

tsc --outFile "build/bundle.js"
Run Code Online (Sandbox Code Playgroud)

但是,此文件仅包含Typescript文件,并且不包含“ node_modules”目录中的任何文件,例如jQuery。如果我尝试执行捆绑软件,我将得到无法找到文件的错误。

如何将Typescript依赖的“ node_modules”文件添加到相同的单个捆绑文件中?Typescript显然知道文件在哪里,因为它具有正确的路径。

我正在使用SystemJS在浏览器中加载我的项目。我承认我很困惑我该如何去加载模块和捆绑(我可以使用SystemJS捆绑器?),却不理解为什么这样做的途径很多。

javascript bundling-and-minification typescript systemjs

8
推荐指数
1
解决办法
1076
查看次数

防止 Firebase 用户吃掉读取配额

我有一个非常简单的基于 JavaScript 的 Firebase 应用程序,每个用户在 Firestore 中获得一个他们可以读取的单个文档。由于在客户端代码中可以轻松访问 Firebase API 凭据,是什么阻止用户编写快速 JavaScript 程序,例如登录并阅读此文档数百万次以耗尽我的阅读配额?

此处的文档用于检查用户是否已付费使用该应用程序,因此我担心有人会锁定所有其他付费用户。

firebase google-cloud-firestore

7
推荐指数
0
解决办法
1024
查看次数

Firebase 通过函数写入 Firestore 时出错:“7 PERMISSION_DENIED:缺少或权限不足”

我正在尝试编写一个简单的 Firebase 函数,使用 TypeScript 将记录添加到 Firestore。代码的精简版本是:

import * as admin from "firebase-admin";
import * as functions from "firebase-functions";

const config = functions.config();

admin.initializeApp(functions.config().firebase);
admin.database.enableLogging(true);

exports.subscriptions = functions.https.onRequest(
  async (req, res) => {
    try {
      const requestSubscription = req.body;
      const subscription = {
        subscription_id: requestSubscription.subscription_id,
        email: requestSubscription.email || ""
      };

      const id = subscription.subscription_id;
      const dbSubscriptions = admin.firestore().collection("subscriptions");
      await dbSubscriptions.doc(id).set(subscription);

      return res.status(200).send(`Success`);
    } catch (e) {
      console.error(e.stack);
      return res.status(500).send(`Error`);
    }
  }
);
Run Code Online (Sandbox Code Playgroud)

这在本地按预期工作。当我部署时,我收到此错误:

Error: 7 PERMISSION_DENIED: Missing or insufficient permissions.
    at …
Run Code Online (Sandbox Code Playgroud)

firebase typescript google-cloud-functions google-cloud-firestore

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

为什么不总是使用 HTTPOnly 和 Secure cookie 标志?

安全 cookie 标志会停止通过 HTTP 发送 cookie。HTTPOnly 标志阻止 JavaScript 访问 cookie。

仅 HTTPS 的站点始终使用 Secure 和 HTTPOnly cookie 是否是现实的准则?混合 HTTPS 和 HTTP 站点怎么样?有什么缺点?

显然,如果您需要 HTTPS 和 HTTP 页面上的 cookie,以及您网站的 JavaScript 访问权限,您就不能使用这些标志,但是一个设计良好的网站是否需要这样做?

javascript security cookies xss https

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

在JavaScript扩展程序中加载沙盒iframe的JavaScript错误(localstorage,cookie)

我正在编写一个Chrome扩展程序,其中显示了用户在沙盒iframe中选择的网站的预览.我发现很多页面都没有在iframe中正确呈现,因为它们会出现JavaScript错误,这会破坏对呈现页面很重要的脚本(比如隐藏加载对话框):

"Uncaught DOMException: Failed to read the 'localStorage' property from 'Window':
The document is sandboxed and lacks the 'allow-same-origin' flag."

"Uncaught DOMException: Failed to read the 'cookie' property from 'Document':
The document is sandboxed and lacks the 'allow-same-origin' flag."
Run Code Online (Sandbox Code Playgroud)

如何安全地回避这些错误,以便大多数页面按预期呈现?它们实际上不需要将数据保存到本地存储或cookie,只需正确呈现即可.我已经确认,如果您在常规网站上放置沙盒iframe,则会发生同样的错误,因此这不是Chrome扩展程序问题,但我可能会因为它在Chrome扩展程序中而支持它.

一些说明:

  • 我的理解是启用'allow-same-origin'标志将是一个巨大的安全风险,因为它会让iframe访问Chrome扩展的上下文,所以我不想这样做.启用此标志确实可以解决问题.(编辑:我认为现在这实际上可能是安全的.鉴于我的背景,这是真的吗?)

  • 在Chrome设置中,您可以阻止本地存储和Cookie,这可能会导致其他地方出现类似错误.这些设置对此没有影响.

  • 我尝试在Chrome扩展程序页面中的另一个iframe内部加载iframe我的目标页面并得到相同的错误.

  • 是否有可能将JavaScript注入iframe,实现'localStorage'和'cookie'的虚拟版本?我研究了内容脚本,但在页面脚本运行之前找不到改变这些全局对象的方法.可能吗?

我的清单文件是这样的:

    {
      "name": "test",
      "version": "0.0.1",
      "manifest_version": 2,
      "description": "",
      "icons": {
        "128": "assets/app-icon/app-icon-128x128.png"
      },
      "default_locale": "en",
      "background": {
        "scripts": [
          "scripts/background.js"
        ]
      },
      "permissions": [
        "clipboardWrite",
        "tabs",
        "storage",
        "webRequest",
        "webRequestBlocking",
        "unlimitedStorage",
        "<all_urls>" …
Run Code Online (Sandbox Code Playgroud)

javascript cookies iframe google-chrome google-chrome-extension

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

jspdf/pdfmake 创建 PDF 与将页面打印为 PDF 的好处?

我想在浏览器扩展选项卡中创建 PDF 报告。我希望能够添加图形、文本、UTF-8 支持、图像、位置文本,但除此之外,在样式和布局方面没有任何过分疯狂的东西。

我一直在阅读有关 jspdf(不支持 UTF8)和 pdfmake 的限制。看起来他们在处理很多问题时会很复杂。

我的一个想法是:

  • 将我的报告所需的 HTML 直接放在页面上。

  • 使用 CSS 隐藏报告 HTML 以外的所有内容,并使用“@media print”样式来设置报告样式。

  • 触发“window.print()”以在 JavaScript 中打印页面。Chrome 显示预览,让您单击即可保存为 PDF。Firefox 的打印预览显示预览,界面有点乱,但您只需点击几下即可保存为 PDF。

我错过了什么吗?我的方法有什么主要缺点吗?也许操作系统特定的问题?为什么要使用 jspdf 或 pdfmake 呢?

我没有看到在任何我觉得奇怪的地方建议使用这种方法。我看到的唯一缺点是用户可能会对为什么他们在不期望 PDF 时被要求打印某些内容感到困惑,但由于报告不是经常生成,所以这里没什么大不了的。

javascript pdf firefox google-chrome jspdf

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