当前位置: 首页 > 面试题库 >

是否可以通过带有“伪造”请求的代码直接调用Express Router?

彭开畅
2023-03-14
问题内容

我想找出是否有一种无需实际通过HTTP即可触发Express Router的方法?


问题答案:

路由器具有名为“私有”方法的名称handle,该方法接受请求,响应和回调。您可以看一下Express对其Router进行的测试。一个例子是:

it('should support .use of other routers', function(done){
    var router = new Router();
    var another = new Router();

    another.get('/bar', function(req, res){
      res.end();
    });
    router.use('/foo', another);

    router.handle({ url: '/foo/bar', method: 'GET' }, { end: done });
  });

Express团队使用SuperTest在路由器上执行集成测试。据我了解,SuperTest仍在使用网络,但它们会为您处理所有这些,因此其行为就像测试全部在内存中一样。SuperTest似乎确实被广泛使用,并且是一种可接受的测试路线的方法。

顺便说一句,您没有说您要测试的内容,但是如果您的目标是测试某些路由,那么SuperTest的替代方法可能是将路由中的逻辑提取到一个单独的模块中,该模块可以独立于Express进行测试。

更改:

routes
|
-- index.js

至:

routes
|
-- index.js
|
controllers
|
-- myCustomController.js

然后,测试可以简单地针对myCustomController.js并注入任何必要的依赖项。



 类似资料:
  • 我正在开发一个应用程序,希望使用http post请求将数据从客户端发送到服务器,服务器使用客户端的原始url来允许使用我们的服务,因此我的问题是,客户端的http url是否可以伪造为访问我的服务的安全威胁,如果是,我应该采取其他替代方案? 例如,如果客户端脚本在来自foo的页面上运行。com希望从bar请求数据。com,在请求中必须指定头,bar必须响应。 有什么可以阻止来自roh网站的恶意代

  • 我有以下代码: 可以用代码设置吗?如果是,怎么做? 我想按代码设置,因为我想解决另一个问题,请单击此处 一个人告诉我使用lookup get selector,但它返回null。 下面的代码就是我所做的?你能告诉我怎么了吗? 任何帮助都将不胜感激。

  • CSRF攻击迫使经过身份验证的用户(受害者)发送伪造的HTTP请求,包括受害者的会话cookie到易受攻击的Web应用程序,这允许攻击者强制受害者的浏览器生成请求,以便易受攻击的应用程序感知来自受害者。 我们下面来了解这个漏洞的威胁代理,攻击向量,安全弱点,技术影响和业务影响。 威胁代理 - 任何人都可以将内容加载到用户的浏览器中,从而迫使他们向您的网站提交请求。 攻击者的方法 - 攻击者创建伪造

  • 跨站请求伪造(CSRF)是一种漏洞利用,攻击者致使受害的最终用户按恶意URI(例如以误导的链接、图片或重定向提供给用户代理)到达受信任的服务器(通常由存在有效的会话Cookie而建立)。 针对客户端的重定向URI的CSRF攻击允许攻击者注入自己的授权码或访问令牌,这将导致在客户端中使用与攻击者的受保护资源关联的访问令牌而非受害者的(例如,保存受害者的银行账户信息到攻击者控制的受保护资源)。 客户端

  • 跨站请求伪造(Cross-site request forgery), 简称为 XSRF,是 Web 应用中常见的一个安全问题。前面的链接也详细讲述了 XSRF 攻击的实现方式。 当前防范 XSRF 的一种通用的方法,是对每一个用户都记录一个无法预知的 cookie 数据,然后要求所有提交的请求(POST/PUT/DELETE)中都必须带有这个 cookie 数据。如果此数据不匹配 ,那么这个请求

  • 2.5. 跨站请求伪造 跨站请求伪造(CSRF)是一种允许攻击者通过受害者发送任意HTTP请求的一类攻击方法。此处所指的受害者是一个不知情的同谋,所有的伪造请求都由他发起,而不是攻击者。这样,很你就很难确定哪些请求是属于跨站请求伪造攻击。事实上,如果没有对跨站请求伪造攻击进行特意防范的话,你的应用很有可能是有漏洞的。 请看下面一个简单的应用,它允许用户购买钢笔或铅笔。界面上包含下面的表单: COD