谁动了我的Token – TW洞见



谁动了我的Token – TW洞见

早上7点45分来到公司,我坐在办公桌旁边开始考虑今天的工作事项。想到客户一直抱怨的电子表单系统在产品环境上8000多个无法重现的错误日志就亚历山大,"替换成微软类库也并不一定解决问题,客户又在捣乱。今天一定要和夏夏一起看看这个问题,优先级得提上来",我心里暗自的想着,并把它加到了待办事项的第一条,优先级标为高,截止时间是今天。 开了个好头,但遭遇IE-Only问题 按下遇到的各种环境问题不提,这个错误很快就在IE浏览器(文中统称IE)上重现了,而且只在IE上才有这个问题:页面缺少Anti-CSRF Token导致请求被拒绝。"哎,这不错!",夏夏用他一贯的幽默风格说道。我想:是的,好兆头,万事开头难,我们似乎开了个好头,然而这怎么好像又是IE啊,真不靠谱。 更不靠谱的e.preventDefault? form.submit(function() { if ("AntiCSRF-TOKEN" element not exists) { form.append( input 'AntiCSRF-TOKEN' with value) } }); "哦,横切了一刀",我说。夏夏说:"恩,你说的太对了!是在所有Form提交时自动追加Token"。我想这看起来没问题,在早期系统中经常这样干。那么是谁动了我的Token呢? 11点了,我们的诊断工作紧张而有序的继续进行着,分析各种可能出现的异常路径以及可能性。各种测试验证貌似都没有问题。"这不应该呀。夏夏,我们在里面加上e.preventDefault,不让它提交,手工测测看。"这时我开始乱入,怀着试试看的态度对夏夏说。心想,怎么有些像回到了5年前工作在这个系统上的状态。夏夏改了代码并编译运行,奇怪的事情发生了:Form提交成功,并且错误被修复了!!不光开了个好头,好像我们还中彩蛋了的感觉。 我和夏夏都惊呆了:"这怎么可能?" 夏夏说。"是啊",我说,"e.preventDefault不是应该阻止提交吗?" 暗想我就是最近一段时间没写前端代码而已,世界变化这么快?我和夏夏又过了一遍Anti-CSRF Token处理代码,做了各种尝试,仍然没有头绪。即使e.preventDefault可以解决问题,但我们仍然不知道问题根源。谁动了我的Token!

Read full article from 谁动了我的Token – TW洞见


No comments:

Post a Comment

Labels

Algorithm (219) Lucene (130) LeetCode (97) Database (36) Data Structure (33) text mining (28) Solr (27) java (27) Mathematical Algorithm (26) Difficult Algorithm (25) Logic Thinking (23) Puzzles (23) Bit Algorithms (22) Math (21) List (20) Dynamic Programming (19) Linux (19) Tree (18) Machine Learning (15) EPI (11) Queue (11) Smart Algorithm (11) Operating System (9) Java Basic (8) Recursive Algorithm (8) Stack (8) Eclipse (7) Scala (7) Tika (7) J2EE (6) Monitoring (6) Trie (6) Concurrency (5) Geometry Algorithm (5) Greedy Algorithm (5) Mahout (5) MySQL (5) xpost (5) C (4) Interview (4) Vi (4) regular expression (4) to-do (4) C++ (3) Chrome (3) Divide and Conquer (3) Graph Algorithm (3) Permutation (3) Powershell (3) Random (3) Segment Tree (3) UIMA (3) Union-Find (3) Video (3) Virtualization (3) Windows (3) XML (3) Advanced Data Structure (2) Android (2) Bash (2) Classic Algorithm (2) Debugging (2) Design Pattern (2) Google (2) Hadoop (2) Java Collections (2) Markov Chains (2) Probabilities (2) Shell (2) Site (2) Web Development (2) Workplace (2) angularjs (2) .Net (1) Amazon Interview (1) Android Studio (1) Array (1) Boilerpipe (1) Book Notes (1) ChromeOS (1) Chromebook (1) Codility (1) Desgin (1) Design (1) Divide and Conqure (1) GAE (1) Google Interview (1) Great Stuff (1) Hash (1) High Tech Companies (1) Improving (1) LifeTips (1) Maven (1) Network (1) Performance (1) Programming (1) Resources (1) Sampling (1) Sed (1) Smart Thinking (1) Sort (1) Spark (1) Stanford NLP (1) System Design (1) Trove (1) VIP (1) tools (1)

Popular Posts