Шифрование JavaScript - PullRequest
       2

Шифрование JavaScript

2 голосов
/ 28 апреля 2011

скрипт должен искать строку внутри веб-страницы.но этот скрипт не должен отображать, какую строку он ищет.Я имею в виду строку поиска должна быть в зашифрованном формате или любом другом формате.но без этой строки поиска веб-страница не должна отображаться или должна отображаться ошибка на странице.

Я собираюсь разработать плагин.Если кто-то использует этот плагин на своей веб-странице, он должен и должен поместить мое имя или имя моего веб-сайта на этой странице.

возможно ли это, если да, то как зашифровать мой текст (srikanth) внутри скрипта и как искатьэта строка внутри страницы.

сколько существует возможностей разместить мое имя на веб-странице с помощью javascript или jquery, но оно не должно отображаться, как это происходит, когда кто-нибудь проверяет его в исходном коде

Ответы [ 3 ]

5 голосов
/ 28 апреля 2011

Нет способа скрыть ваше имя. Если браузер может видеть это, то любой пользователь может.

Вы можете зашифровать свое имя так, как вам нравится. Но, конечно, для выполнения поиска необходимо расшифровать его на стороне клиента. Поэтому любой, у кого есть отладчик javascript, может мгновенно раскрыть ваше имя.

Или, немного более незаметно, вы можете хешировать свое имя на стороне сервера, в javascript хешить содержимое страницы, а затем выполнять поиск. При достойном хеше вероятность столкновения будет небольшой. Тем не менее, с отладчиком вы все равно можете найти строку поиска без проблем. И если честно, это звучит просто абсурдно.

Все, что вы пытаетесь достичь, необходимо переосмыслить.

4 голосов
/ 28 апреля 2011

Любой может просматривать исходный код Javascript, поэтому на самом деле невозможно зашифровать что-либо с использованием Javascript безопасным способом. Вы можете запутать это, часто ужасными способами, но всегда можно повернуть вспять.

Если можете, делайте все, что требует минимальной безопасности на сервере.

2 голосов
/ 28 апреля 2011

Поскольку вы не можете зашифровать фрагмент текста, вы можете запутать результаты поиска и выполнить проверку.

<!doctype html public "-//w3c//dtd html 3.2 final//en">
<html>
<head>
<!-- some simple styling so the div element does not appear, 
you could equally use a hidden form field and not require the styling -->
<style>#h3llo{display:none;}</style>
</head>
<body>
<div>Hello Some simple text
<form action="#" method="post" onSubmit="dosearch();return false;">
    <input type="text" id="searchfield" />
    <input type="button" name="submit" value="search" onClick="dosearch();return false;" />
</form>
</div>
<div id="h3llo"></div>
<script>
function d2h(d) {return d.toString(16);}
function h2d(h) {return parseInt(h,16);}
// converts the input string into hex vals
function Str2Hex(inputvars) {
  var tmp = inputvars;
  var str = '';
  for (var i=0; i<tmp.length; i++) {
    c = tmp.charCodeAt(i);
    str += '\\x' + d2h(c);
  }
  return str;
}
// converts the input field h3llo back to a string
function Hex2Str() {
  var tmp = document.getElementById('h3llo').innerHTML;
  var arr = tmp.split('\x');
  var str = '';
  for (var i=1; i<arr.length; i++) {
    c = String.fromCharCode(h2d(arr[i]));
    str += c;
  }
  return str.trim();
}
// fills the h3llo field with the encoded string
function populate(inputvars){document.getElementById('h3llo').innerHTML = Str2Hex(inputvars);}
// checks that the submitted search string matches the encoded string
function check(inputval){if(Hex2Str().toString() != inputval.toString()){ alert("Warning: '" + Hex2Str().toString() + "' != '" + inputval.toString() + "'");}else{alert("success");}}
// the action that fills the hidden field and checks the encoded value is the same
function dosearch(){var sval = String(document.getElementById('searchfield').value);populate(sval); check(sval);}
</script>
</body>
</html>

Если бы кто-то просматривал источник, он на первый взгляд не смог бы увидеть строку поиска, хотя, как уже упоминалось ранее, ее было бы легко отменить, она бы запутывала случайного зрителя. Кроме того, если закодированные данные были скрыты css, как в этом примере, или в скрытом поле формы, они никогда не появятся на странице или в источнике в незашифрованном виде.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...