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

JS 这次真的可以禁止常量修改了!🥊

JS 中,常量是不可改变的。这个 “不可改变” 指的是常量存放的内存地址不变。 众所周知,使用 const 定义的常量,如果是基础类型的数据,值不能变。...JS 的基础类型数据存在 栈内存 里;引用类型数据存在 堆内存 里。但引用类型的数据,比如对象,对象的 key 是存到栈内存 里,栈内存 中存放了一个引用地址,这个引用地址指向存放在 堆内存 的值。...举个例子 const obj = { name: '雷猴' } obj.name = '鲨鱼辣椒' console.log(obj) // 输出: {name: '鲨鱼辣椒'} 复制代码 有没有觉得上面的代码看上去并不那么...雷猴 obj.skill.name = '大象踢腿' console.log(obj.skill) // 输出: {name: '大象踢腿', describe: '跑不快的,没啥用的功夫'} 复制代码

2.5K40

C# 谁改了我的代码

让别人看到源代码也不知道怎么使用,那么就可以使用这个科技,下面就是显示技术的时候 我把 Foo 做一些修改,把 str 变量去掉,这样大家就难以通过搜索变量引用找到了这个函数。...实际上,请跑一下下面的代码。...如果我代码很多,在某个地方使用了反射,反射一个方法,这个方法是修改一个常量的值,常量是写自己写的,没有引用。这时可以发现代码执行就可以更改之前的字符串值。实际上不只字符串,其它的常量也可以修改。...多使用这些技术,可以让看代码的人成为强大的杀人狂。 这个方法是不推荐在一般情况使用,因为谁都不能说没有其他地方使用一样的字符串。

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

C# 谁改了我的代码

让别人看到源代码也不知道怎么使用,那么就可以使用这个科技,下面就是显示技术的时候 我把 Foo 做一些修改,把 str 变量去掉,这样大家就难以通过搜索变量引用找到了这个函数。...实际上,请跑一下下面的代码。...如果我代码很多,在某个地方使用了反射,反射一个方法,这个方法是修改一个常量的值,常量是写自己写的,没有引用。这时可以发现代码执行就可以更改之前的字符串值。实际上不只字符串,其它的常量也可以修改。...多使用这些技术,可以让看代码的人成为强大的杀人狂。 这个方法是不推荐在一般情况使用,因为谁都不能说没有其他地方使用一样的字符串。

34710

代码被人改了导致事故怎么办?

年前上线了一个集卡抽奖活动,授权逻辑代码被其他同事修改,最终生产线上导致生产事故,影响了近万个用户的相关数据。 今天橘长想和大家聊聊『 代码被人改了导致事故怎么处理 』。...1.2 2、如不能短期内修复,回滚代码 这时候版本管理起了大作用,因为去修复 bug 的成本远大于回滚,但是回滚其实不太好,除非是做优化的代码,对于上新的业务代码,回滚就意味着这次上新失败。...2 二)代码被人改了很正常 业务需求变更迭代, 代码被人改了很正常,不要大惊小怪,更不要骂骂咧咧说 xxx 改了代码,导致事故了。...4 四)不想别人改你代码怎么做 4.1 1、代码只读 最粗暴的方式,代码变为只读属性,强行不让任何人改。 但是现实吗?很难,除非是底层核心代码生成 sdk 包。...做好代码版本管理。

41921

调试JS代码

记录下近期对JS代码的调试过程 性能分析 启动程序之后,打开google浏览器对应页面,按F12或者Ctrl+Shift+I进入 开发者工具页面 目前主要使用的功能有: Performance....性能评估,比如我想看下页面刷新的性能瓶颈所在,先点击 按钮,然后进行页面操作,当页面刷新完成,再点击 按钮,则会生成性能报告,可以看到资源消耗,JS代码的执行逻辑等 Sources....性能报告页面的 部分,可以通过点击色块查看其所在的js代码文件,如 点击则会跳转到 功能栏,有了源文件就可以进行断点调试;这里注意部分js文件是压缩后的文件,建议手动修改程序替换成可读性更强的原始代码文件...查看程序的打印输出,比如我想知道某个函数的执行时间,可以在js代码中进行修改 当js代码执行之后,可以在console输出中看到foo的执行时间 Network....代码使用for循环进行操作,也就是线性复杂度,计算耗时随数据量的增大而线性增大 通过debug观察发现颜色数组会有不少重复的数值,而同样的输入会导致相同的输出,然后对整个数据的1M个点进行统计分析,发现重复率相当高

19K10

js代码规范

前言 在js代码开发中,我简单的总结出了以下规则,后面会陆续补充并且对规范进行分类。...js代码建议保存到后缀名.js的文件中 js代码不建议放在html中,原因有:不能被缓存,会增大网页文件的大小,可维护性不高,会影响页面的加载。...js吧任何表达式都当一条简单语句,会导致一些隐性的错误。如果自己没加分号,那么js解释器会自动添加分号,按照自己能读懂的断句。 9.2 复合语句 也称为语句块,被包在大括号内部。...比如对象 var obj={} ;var arr=[] eval eval是最容易混乱使用的js函数,他可以执行内部入参的js函数或者表达式,可以直接解析变量。不建议使用 。...尽量使用语法严格模式 消除代码之中的不友好;代码运行更快 ;保证运行的安全 ;为新版本的js做好铺垫。 22.

8.8K30

改了五行代码接口吞吐量提升了10多倍

检查代码发现,这部分没有任何耗时操作。那么这段时间干什么了呢? 发生了线程切换,换其他线程执行其他任务了。(线程太多了) 日志打印太多了,压测5分钟日志量500M。...然后,拆线程 @Async 注解使用线程池,控制代码线程池数量(之前存在3个线程池,统一配置的核心线程数为100)结合业务,服务总核心线程数控制在50以内,同步增加阻塞最大大小。...代码有部分CPU密集操作。 然后继续一顿操作: 观察服务活跃线程数。 观察有无CPU占用率较高线程。 在观察过程中发现,没有明显CPU占用较高线程。所有线程基本都在10%以内。...复制代码 上边的堆栈发现了一个点: 在执行getBean的时候,执行了createBean方法。我们都知道Spring托管的Bean都是提前实例化好放在IOC容器中的。...赶紧改代码,直接使用万能的 new 。 在看结果之前还有一点需要提一下,由于系统有大量统计耗时的操作。

17630

JS代码混淆 | js 逆向系列

-g uglifyjs example.js -c -m --mangle-props -c 代码压缩 -m 代码混淆 --mangle-props 混淆属性名 -b 美化显示 // 原代码 const...JShaman https://www.jshaman.com/ JShaman 是国内公司开发的js代码加密商业产品 免费版可以直接使用 // 原代码 const person = { age...-> \u0021 部分字符变成 Unicode 编码 全局字符串变量的值也被修改了 "John" -> "nhoJ".split("").reverse().join("") 对象属性调用也是使用 Unicode...,通过数组、字典等各种形式存储、拼接、替换等,最终进行还原,这里面没有利用到复杂的语法以及js 语言本身的特性,所以我们一点点解开也学不到什么; 这个代码就不一样了,我们一步一步解开它,尝试去学习其中的思路...b 函数为基础更改了环境的,所以才导致上面的情况 这下我们就可以回来分析这段代码了 var i = b['constructor']['prototype']['bind'](b); 虽然最开始是

91510

改了五行代码接口吞吐量提升了10多倍

检查代码发现,这部分没有任何耗时操作。那么这段时间干什么了呢? 发生了线程切换,换其他线程执行其他任务了。(线程太多了) 日志打印太多了,压测5分钟日志量500M。...复制代码 上边的堆栈发现了一个点: 在执行getBean的时候,执行了createBean方法。我们都知道Spring托管的Bean都是提前实例化好放在IOC容器中的。...赶紧改代码,直接使用万能的 new 。 在看结果之前还有一点需要提一下,由于系统有大量统计耗时的操作。...代码 : 异步执行,线程池参数调整,tomcat 配置,Druid连接池配置... JVM : 内存大小,分配,垃圾收集器都想换... 总归一通瞎搞,能想到的都试试。...最后,高性能代码。无论接口响应时长,还是 CPU 资源利用率,都依赖于我们的代码,要做高性能的方案设计,以及高性能的代码实现,任重而道远。 CPU使用率的高低与哪些因素有关?

63820

改了五行代码吞吐量提升了10多倍!爽!

检查代码发现,这部分没有任何耗时操作。那么这段时间干什么了呢? 发生了线程切换,换其他线程执行其他任务了。(线程太多了) 日志打印太多了,压测5分钟日志量500M。...代码有部分CPU密集操作。 然后继续一顿操作: 观察服务活跃线程数。 观察有无CPU占用率较高线程。 在观察过程中发现,没有明显CPU占用较高线程。所有线程基本都在10%以内。...赶紧改代码,直接使用万能的 new 。 在看结果之前还有一点需要提一下,由于系统有大量统计耗时的操作。...代码 : 异步执行,线程池参数调整,tomcat 配置,Druid连接池配置... JVM : 内存大小,分配,垃圾收集器都想换... 总归一通瞎搞,能想到的都试试。...最后,高性能代码。无论接口响应时长,还是 CPU 资源利用率,都依赖于我们的代码,要做高性能的方案设计,以及高性能的代码实现,任重而道远。 CPU使用率的高低与哪些因素有关?

17730

Js 逆向进阶 | 浅谈 Js 代码保护

作者:不知世事 原文:https://blog.csdn.net/feibabeibei_beibei/article/details/98232069 JavaScript 代码保护浅谈 国外: 1...2.Js2x http://ty2y.com/obfuscate/#how-to-use ? 这个跟上面那个多态变异是一样的。...vmp 最强的,这种方案其实也是很好理解的,比如对于一个js代码来说,我们只用js操作写一个基于栈的解释器,然后对于本身要保护的js进行虚拟化,定义一堆自定义操作,这个时候其实还是比较弱,因为全部是...结合服务端针对多样性来增加难度; 5.做移动安全代码保护的传统厂商们 这里就不评论分析了,因为他们可能重点在APP相关的dex、so以及手游相关的文件上;6.其他 像其他的一些大厂比如阿里这种肯定做了jsVMP...总结 对于 js 这种语言来说,由于语言本身的特殊性,一定的保护是非常必要的,再结合浏览器本身的发展,为了性能会在编译上做处理,引入本地层的东西,比如谷歌的 V8 ,火狐的 asm.js 在安全性上:业务上更多的结合服务端动态特性以及客户端强大的静态代码保护的设计会达到一个比较好的效果

27.6K20

js代码混淆工具?

什么是js混淆工具?js混淆工具是一种能够将js代码转换成难以阅读和理解的代码的工具,通常用于保护js代码的安全性和版权,防止被恶意修改或盗用。...代码转换:将代码中的一些语法或者表达方式转换成另一种等效的形式,增加代码的多样性和难度。为什么要使用js混淆工具?...js混淆工具的主要目的是为了保护js代码不被轻易地反编译或者破解,提高js代码的安全性和稳定性。...由于js代码是运行在浏览器端的,任何人都可以通过查看网页源码或者使用开发者工具来查看和修改js代码,这给js代码带来了很大的风险。...总结js混淆工具是一种能够保护js代码安全性和版权的工具,通过将代码转换成难以阅读和理解的形式来实现。在选择js混淆工具时,需要根据自己的需求和使用场景选择。

59900

JS代码之混淆

AST 在线解析 AST explorer js 在线混淆工具 JavaScript Obfuscator Tool 书籍 《反爬虫 AST 原理与还原混淆实战》 相关混淆代码 kuizuo/js-de-obfuscator...js 代码中混淆与还原的对抗,而所使用的技术便是 AST,通过 AST 能很轻松的将 js代码混淆成难以辨别的代码。...(后文代码将会省略模块引入、js 代码读取、解析与生成的代码) const fs = require('fs') const parser = require('@babel/parser') const...parser 与 generator​ 前者用于将 js 代码解析成 AST,后者则是将 AST 转为 js 代码,两者的具体参数可通过 babel 手册查看,这就不做过多介绍了。...个人推荐这种写法,因为能有 js代码提示,如果是 TypeScript 效果也一样。

21.8K10

JS代码之还原

基于 Babel 对 JS 代码进行混淆与还原操作的网站 JS 代码混淆与还原 (kuizuo.cn) 还原前言​ AST 仅仅只是静态分析,但可以将还原出来的代码替换原来的代码,以便更好的动态分析找出相关点...在还原时,并不是所有的代码都能还原成一眼就识破代码执行逻辑的,ast 也并非万能,如果你拥有强大的 js 逆向能力,有时候动态调试甚至比 AST 静态分析来的事半功倍。...贴上代码 git 地址 js-de-obfuscator/example/deobfuscator/cx 注:该 js 文件是通过工具JavaScript Obfuscator Tool进行混淆处理的。...运行还原后的代码​ 最终整个还原后的代码可以在newCode.js中查看,但到目前为止还没有测试还原后的代码到底能否正常运行,或者是替换节点导致语法错误,所有就需要将还原后的代码与混淆过的代码替换运行这样才能测试的出来...JS 混淆与还原的网站​ 针对上述还原操作其实还不够明显,于是就编写了一个在线对 JS 代码混淆与还原的网站(主要针对还原)– JS 代码混淆与还原 (kuizuo.cn) 其实也就是对上述的还原代码进行封装成工具使用

18.8K20
领券