首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

JavaScrip最容易犯的十大错误及其避免方法()

反过来,这意味着ItemList项目定义为未定义,并且您在控制台中收到错误 - “Uncaught TypeError:无法读取未定义的属性’map’”。 这很容易解决。...这是因为对于空白的对象引用,DOM API返回null。 任何执行和处理DOM元素的JS代码都应该在创建DOM元素之后执行。 JS代码按照HTML中的布局从上到下进行解释。...要获取真实的错误消息,请执行以下操作: 1.发送Access-Control-Allow-Origin Access-Control-Allow-Origin设置为表示可以从任何域正确访问资源...以下是有关如何在各种环境中设置的一些示例: Apache 将从中提供JavaScript文件的文件夹中,使用以下内容创建.htaccess文件: Header add Access-Control-Allow-Origin...即使没有Typescript,使用它们之前使用guard子句来检查对象是否未定义也是有帮助的。

11610

跨域资源共享(CORS)

CORS故障会导致错误,但是出于安全原因,该错误的详细信息不适用于JavaScript。所有代码都知道发生了错误。确定具体出问题的唯一方法是查看浏览器的控制台以获取详细信息。...请注意,此类似于Allow响应,但严格访问控制的上下文中使用。...但是,如果请求是由于请求中存在Authorization而触发预检的请求,则无法使用上述步骤解决限制。除非您可以控制请求的服务器,否则您将根本无法解决它。...默认情况下,调用是不使用Cookie的情况下进行的。由于这是一个简单的GET请求,因此不会进行预检,但是浏览器拒绝任何没有标题的响应,并且不会使响应可用于调用Web内容。...请注意,调用服务器时会为您设置这些。使用跨站点XMLHttpRequest功能的开发人员不必以编程方式设置任何跨域共享请求

3.5K50
您找到你想要的搜索结果了吗?
是的
没有找到

关于前端安全的 13 个提示

对于其余的来源,控制台中将会引发错误。 注意:强大的内容安全策略不能解决内联脚本执行的问题,因此 XSS 攻击仍然有效。 你可以 MDN 上查阅 CSP 指令的完整列表。 4....如果你不生成 HTML,则无法插入 JavaScript,也许你会看到其中的内容,但什么事也不会发生。...始终设置 `Referrer-Policy` 每当我们用定位标记或导航到离开网站的链接时,请确保你使用策略"Referrer-Policy": "no-referrer" ,或者使用定位标记的情况下...如果不设置这些和相关性,则目标网站可以获得会话 token 和数据库 ID 之类的数据。 10....我们可以添加一个 Feature-Policy 来拒绝对某些功能和 API 的访问。更多内容。 提示:把所有你不用的功能设置为 none 11.

2.3K10

Spring Boot中实现HTTP缓存

2.客户端缓存验证 当您知道请求的资源在给定的时间内不会更改时,服务器可以将此类信息作为响应头发送到客户端。基于该信息,客户端决定是否应该再次获取资源或重用先前下载的资源。...通过的值设置为max-age = ,可以通知客户端多长时间不再需要再次获取资源。缓存值的有效性与请求的时间有关。...为了设置Spring的控制器中的HTTP,就要在RESTContoller用ResponseEntity包装类。...相反,它使用304 HTTP代码响应,没有任何有效负载。 要公开资源的修改日期,您应该设置Last-Modified。...将其视为对象的哈希码。 如果资源具有其修改日期并且您可以使用一秒精度,请使用Last-Modified。为什么?因为ETag计算可能是一项昂贵的操作。

5.1K50

对不起,看完这篇HTTP,真的可以吊打面试官

缓存未占用资源 Etag 的另一个典型用法是缓存未更改的资源,如果用户再次访问给定的 URL(已设置Etag),并且该 URL过时,则客户端将在 If-None-Match 字段中发送其 Etag...服务器还可以通知客户端是否应与请求一起发送凭据(例如 Cookies 和 HTTP 身份验证)。 注意:CORS 故障会导致错误,但是出于安全原因,该错误的详细信息不适用于 JavaScript。...客户端第一次发送请求没有,缓存为空并且没有条件请求,服务器收到客户端请求后,设置验证器 Last-Modified 和 Etag 标签,并把这两个标签随着响应一起发送回客户端。...如果服务器成功返回,那么返回 206 响应;如果 Range 范围无效,服务器返回416 Range Not Satisfiable错误;服务器还可以忽略 Range 并且返回 200 作为响应...Set-Cookie 和 Cookie Set-Cookie HTTP 响应 cookie 从服务器发送到用户代理。

6.3K21

跟我一起探索 HTTP-跨源资源共享(CORS)

服务器确认允许之后,才发起实际的 HTTP 请求。预检请求的返回中,服务器端也可以通知客户端,是否需要携带身份凭证(例如 Cookie 和HTTP 认证相关数据)。...CORS 请求失败会产生错误,但是为了安全, JavaScript 代码层面无法获知到底具体是哪里出了问题。你只能查看浏览器的控制台以得知具体是哪里出现了错误。...-255) 备注: Firefox 还没有 Range 实现为安全的请求。...如果请求是使用XMLHttpRequest 对象发出的,返回的 XMLHttpRequest.upload 对象属性上没有注册任何事件监听器;也就是说,给定一个XMLHttpRequest 实例 xhr...请注意,这些字段无须手动设置。当开发者使用 XMLHttpRequest 对象发起跨源请求时,它们已经被设置就绪。 Origin Origin字段表明预检请求或实际跨源请求的源站。

28130

跟我一起探索 HTTP-HTTP缓存

大多数情况下,你可以通过 Cache-Control 和你自己的配置文件或仪表板来控制缓存的行为。...doctype html> … 试探性地知道,整整一年没有更新的内容在那之后的一段时间内不会更新。因此,客户端存储此响应(尽管缺少 max-age)并重用它一段时间。...该行为也 Fetch 标准中定义,并且可以通过缓存模式设置为 no-cache 的情况下, JavaScript 中调用 fetch() 来重现(注意 reload 不是这种情况下的正确模式):...该行为也 Fetch 标准中定义,并且可以通过缓存模式设置为 reload 的情况下, JavaScript 中调用 fetch() 来重现(注意它不是 force-reload): // 注意:...此外,如果客户端使用的 JavaScript 和 CSS 资源的版本不同步,则显示中断。 所以上面的 HTML 用 max-age 缓存 bundle.js 和 build.css 变得很困难。

22451

asp:UpdatePanel客户端回传事件管理

回传的周期控制 initializeRequest 开始处理异步请求之前引发。 可以使用此事件取消回发。 beginRequest 开始处理异步回发、将回发发送到服务器之前引发。...可以使用此事件来设置请求,或开始一个动画以指示正在处理页面。 pageLoading 收到服务器对异步回发的响应之后、页上任何内容更新之前引发。...endRequest 异步回发完成,并且控制权返回到浏览器之后引发。 可以使用此事件向用户提供通知或错误记录到日志。 3 ....运行之后,初始化时貌似没有什么问题,但是当我们点击search…按钮之后,我们发现table的行背景色没有了,为什么?...这个是因为当我们点击搜索按钮之后,新获取的数据被呈现在页面上,但是我们初始化表格样式的javascript代码并没有再次执行,所以我们的表格样式会出现下面的这种情况: 如果我们需要通过javascript

3.6K30

震惊 | HTTP 疫情期间把我吓得不敢出门了

缓存未占用资源 Etag 的另一个典型用法是缓存未更改的资源,如果用户再次访问给定的 URL(已设置Etag),并且该 URL过时,则客户端将在 If-None-Match 字段中发送其 Etag...服务器还可以通知客户端是否应与请求一起发送凭据(例如 Cookies 和 HTTP 身份验证)。 注意:CORS 故障会导致错误,但是出于安全原因,该错误的详细信息不适用于 JavaScript。...如下图所示 客户端第一次发送请求没有,缓存为空并且没有条件请求,服务器收到客户端请求后,设置验证器 Last-Modified 和 Etag 标签,并把这两个标签随着响应一起发送回客户端。...如果服务器成功返回,那么返回 206 响应;如果 Range 范围无效,服务器返回416 Range Not Satisfiable错误;服务器还可以忽略 Range 并且返回 200 作为响应...Set-Cookie 和 Cookie Set-Cookie HTTP 响应 cookie 从服务器发送到用户代理。

5.2K20

顶级开源项目 Sentry 20.x JS-SDK 设计艺术(概述篇)

无法发送自定义 X-Sentry-Auth 的情况下,可以通过查询字符串发送以下值: ?...设置为 transfer-encoding: chunked,这可以省略 content-length ,并要求请求主体包装到 chunk 头中。 有关更多详细信息,请参见 MDN。...处理错误 我们强烈建议您的 SDK 妥善处理来自 Sentry 服务器的故障。具体来说,SDK 必须遵守 429 状态代码,并且 Retry-After 之前不要尝试发送。...要在开发过程中调试错误,请检查响应和响应正文。...发出时,它们包含精确的错误消息,这对于识别根本原因很有用。 请注意: 我们不建议即使错误响应头中声明了 Retry-After,SDK 也不会在发生错误时自动重试事件提交。

2K20

IDOR漏洞

移动应用程序中购买时会添加信用卡。测试请求之后,可以认为没有任何漏洞。但是,当进行第二次购买时,会看到信用卡选择屏幕,此时IDOR漏洞就出现了。...IDOR错误的有趣案例 处理创建请求 某些应用程序客户端创建一个id,然后in create请求发送到服务器。该id值可以是诸如“-1”,“0”或任何其他的数字。...盲目的IDOR 另一种情况下,你可以找到一个IDOR漏洞,但你可能无法实现这一点。例如,如果你应用程序中更改对象的信息,你收到包含对象信息的电子邮件。...我们已经多次看到这些请求中的“用户ID”值,并且我们可以轻松地接管到另一个用户的帐户。 同时,在请求中发送的值占用帐户是一件很重要的事情。...否则,由于令牌值不匹配,你收到错误。这可能会使你被误导。 同样,如果您的测试请求是XHR(XML HTTP请求),则必须检查请求中“Content-Type”参数的验证。

3.2K30

Web Security 之 HTTP Host header attacks

提供一个任意的 Host 探测 Host 注入漏洞时,第一步测试是给 Host 设置任意的、无法识别的域名,然后看看会发生什么。...例如,你可能会发现 Host 没有 HTML 编码的情况下反映在响应标记中,甚至直接用于脚本导入。反射的客户端漏洞(例如 XSS )由 Host 引起时通常无法利用。...经典的 SSRF 漏洞通常基于 XXE 或可利用的业务逻辑,该逻辑 HTTP 请求发送到从用户可控制的输入派生的 URL 。...确认可以成功地操纵中介系统以请求路由到任意公共服务器之后,下一步是查看能否利用此行为访问内部系统。为此,你需要标识目标内部网络上使用的私有 IP 地址。...请注意,电子邮件客户端通常不执行 JavaScript ,但其他 HTML 注入技术如悬挂标记攻击可能仍然适用。

4.9K20

Jquery Ajax请求文件下载操作失败的原因分析及解决办法

jQuery确实是一个挺好的轻量级的JS框架,能帮助我们快速的开发JS应用,并在一定程度上改变了我们写JavaScript代码的习惯。...文件的下载是以二进制形式进行的,虽然可以读取到返回的response,但只是读取而已,是无法执行的,说白点就是js无法调用到浏览器的下载处理机制和程序。...在任何回调函数被调用之前,响应被作为一个或多个JavaScript语句而进行处理 text-响应文本被假定为普通文本。服务器资源负责设置适当的内容类型响应。...如果请求超时值到期之前仍未完成,则中止请求并且调用错误回调函数(如果已定义) global 布尔型 启用或禁用全局函数的触发。这些函数可以附加到元素上,并且Ajax调用的不同时刻或状态下触发。...这个函数被传递XHR实例,并且可以用来设置自定义的或执行其他预请求操作 async 布尔型 如果指定为false,则请求被提交为同步请求。

3.4K30

Microsoft REST API指南

7.2 URL长度 HTTP 1.1消息格式(第3.1.1节的RFC 7230中定义)对请求没有长度限制,其中包括目标URL。RFC的: HTTP没有对请求行长度设置预定义的限制。...以查询参数方式提交自定义请求 有些对某些场景(如AJAX客户端)不兼容,特别是不支持添加的跨域调用时。...因此,服务应该接受PII参数作为传输。 然而在实践中,由于客户端或软件的限制,许多情况下无法遵循上述建议。...服务应该具有相对较少的“code”数量(别超过20个),并且所有客户端必须能够处理所有这些错误信息。 大多数服务需要更大数量的更具体的错误代码以满足所有的客户端请求。...对于任何其他或值,发生预检请求。 8.2.

4.5K10

HTTP headers

端到端头 这些必须发送给消息的最终接收者:请求的服务器,或响应的客户端。中间代理必须重新传输未经修改的并且缓存必须存储它们。...逐跳标题 这些仅对单个传输级连接有意义,并且不得由代理重新传输或缓存。请注意,只能使用Connection常规设置逐跳。...Set-Cookie cookie从服务器发送到用户代理。 Cookie2 包含先前由服务器发送的带有Set-Cookie2的HTTP cookie ,但已被废弃。使用Cookie代替。...X-Forwarded-Proto 标识客户端用来连接到代理或负载均衡器的协议(HTTP或HTTPS)。 Via 由代理(正向和反向代理)添加,并且可以出现在请求和响应头中。...Public-Key-Pins-Report-Only 报告发送到头中指定的report-uri,即使违反固定,仍允许客户端连接到服务器。

7.6K70

Spring Websocket 中文文档 (spring5)

3.2中,Spring Security XML命名空间默认情况下不设置,但可以配置为执行此操作,并且将来可以默认设置它。 见7.1节。...guestguest STOMP代理中继始终 代表客户端转发给代理的每个帧上设置login和passcodeCONNECT。因此,WebSocket客户端无需设置这些; 他们会被忽略。...实际上,浏览器客户端只能使用标准身份验证(即基本HTTP身份验证)或cookie,并且不能提供自定义。...运输错误 传输错误(例如无法读取或写入WebSocket连接或HTTP请求/响应)之后会话关闭。...最简单的服务器端测试形式是编写控制器单元测试。然而,由于控制器的大部分功能取决于其注释,因此这没有用。纯单元测试根本无法测试。

11.6K76

怎样服务器上启用 HTTPS

像平常一样,只有更改通过 QA 后,才会将更改推送到生产平台中。可以使用 Bram van Damme 的脚本或类似脚本来检测网站中的混合内容。...从您控制并且同时提供 HTTP 和 HTTPS 的服务器上提供资源。 这通常是个好点子,因为您可以更好地控制网站的外观、性能和安全。 此外,您不必信任第三方,尽管他们总是很不错。...通过此方式显式设计 HSTS 可确保网络攻击者无法欺骗客户端访问没有 HTTPS 的网站。确认您的网站运营足够可靠之前,不要启用 HSTS,以避免部署 HTTPS 时总是出现证书验证错误。...Caution: 根据 HTTP RFC,如果引用页面是通过安全协议传输的,则客户端不能在(非安全)HTTP 请求中包括引用站点字段。...这里就存在一个棘手的集体行动问题:广告商通过 HTTPS 发布广告之前,网站运营商无法不损失广告收入的情况下迁移到 HTTPS;但是在网站运营商迁移到 HTTPS 之前,广告商没有动力来通过 HTTPS

4.2K20

【译】构建RESTful API的13种最佳实践

从理论上讲,任何人都可以不到五分钟的时间内快速启动数据 API——无论是 Node.js,Golang 还是 Python。 我们探讨构建 RESTful API 时应考虑的 13 种最佳实践。...可以 RESTful API 中访问以下 HTTP 操作: GET 请求:检索资源 POST 请求:创建资源或信息发送到 API PUT 请求:创建或替换资源 PATCH 请求:更新现有资源 DELETE...8.通过 HTTP 头发送元数据 HTTP 允许客户端随其请求发送其他信息。例如,Authorization 通常用于发送身份验证数据以访问 API。...你可以在此处找到所有可能的 HTTP 的完整列表。 9.限速 速率限制是控制每个客户端请求数量的一种有趣方法。...这些是服务器可能返回的速率限制: X-Rate-Limit-Limit:告诉客户端指定时间间隔内可以发送的请求数。

1.9K10

HTTPS 安全最佳实践(二)之安全加固

此外,客户端错误可能会造成严重的后果——客户端错误的时钟导致它认为服务器的 SSL 证书无效或过期,或者缺少根 CA 证书——将不再导致浏览器中的证书错误。...浏览器完全拒绝访问页面,并且可能会显示让安全专家之外的完全无法理解的错误。 建议 设置 HSTS header 长的生命周期,最好是半年及以上。...它们都极大地减少了攻击者客户端和合法主机之间模拟主机或拦截通信的可能性。 像 HSTS 一样,HPKP 实现之前需要仔细的思考和计划。错误可以将用户锁定在您的站点之外,并且不容易修复。...为了简化实现,CSP 提供了一个 report-only 模式,浏览器中,CSP 的违规被发送到一个网站端点,但是该策略没有被强制执行。 新项目应该从一开始就使用 CSP。...虽然它们没有什么实际用途,但对于搜索运行过时版本的软件的机器人或蜘蛛来说,这些是无价的,因为这些软件可能包含安全漏洞。如果没有定期更新,这些头文件可以使网站的目标变得容易。

1.8K10
领券