最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

How to avoid tampering of javascriptHTML elements - Stack Overflow

programmeradmin4浏览0评论

in my fiddle I have an example that should only allow a user to click submit by turning the submit button element disabled to false based on some calculated javascript.

  function enable(TVD) {
    if (TVD[TVD.length - 1] >= trueTVD - 5 && TVD[TVD.length - 1] <= trueTVD + 5) {
      //console.log(TVD[TVD.length - 1]);
      $('#submitButton').prop("disabled", false);
    } else {
      $('#submitButton').prop("disabled", true);
    }
  }

What has happened is that I have found that some users have managed to bypass this presumably by using something like dev tools.

I would like to design this such that my security cant be bypassed. How do I acplish this goal or hide the javascript from dev tools?

in my fiddle I have an example that should only allow a user to click submit by turning the submit button element disabled to false based on some calculated javascript.

  function enable(TVD) {
    if (TVD[TVD.length - 1] >= trueTVD - 5 && TVD[TVD.length - 1] <= trueTVD + 5) {
      //console.log(TVD[TVD.length - 1]);
      $('#submitButton').prop("disabled", false);
    } else {
      $('#submitButton').prop("disabled", true);
    }
  }

What has happened is that I have found that some users have managed to bypass this presumably by using something like dev tools.

I would like to design this such that my security cant be bypassed. How do I acplish this goal or hide the javascript from dev tools?

Share Improve this question asked Oct 10, 2017 at 20:06 Tyler CowanTyler Cowan 8504 gold badges14 silver badges36 bronze badges 2
  • I'm no expert, but I'd imagine that sort of protection would need to be implemented server-side. – freginold Commented Oct 10, 2017 at 20:10
  • 1 Server side validation – Dan Beaulieu Commented Oct 10, 2017 at 20:53
Add a ment  | 

3 Answers 3

Reset to default 5

Short answer: You can't

Long answer: Everyone can send anything to your server. The only way to securely filter and check the user input is therefore on the server side only

Sorry

  1. The best way is validate on the server. Never trust anything that es from a client. It could be tampered with.

  2. It's never pletely possible to stop dev-tools from being loaded, however you can make it difficult by disabling the F12-button and contextmenus, but that's a road you don't want to walk on.

  3. Use code that is minified, so it bees much harder to read and prehend and to tamper with using dev-tools or other sniffers.

summerized: use minified (obfuscated) code in bination with sanity checks on the client and on the server (preferable on the database too).

Afaik, you can't hide javascript code to users. See this.

A low level way of achieving obfuscation would be to have minified javascript files, as most users wouldn't bother tracing single letter named variables and such.

发布评论

评论列表(0)

  1. 暂无评论