2013-06-16 2 views
0

Люди смогут увидеть ссылку подтверждения javascript в строке состояния просмотра. Таким образом, в том, что код ниже достаточно безопасным и как скрыть JavaScript, чтобы DONT показать это: javascript:a = confirm('Are you sure you want to purchase this reward?'); if (a) { location.href='./?page=vote&act=rewards&id=8'} else void(0)Этот код php безопасен и как скрыть ссылку javascript?

Script:

if ($_SESSION['nVotePoints'] >= $data['nCost']) { 
      $url = './?page=vote&act=rewards&id=' . $data['id']; 
      $confirm = "javascript:a = confirm('Are you sure you want to use purchase this reward?'); if (a) { location.href='{$url}'} else void(0)"; 
      $data['URL'] = $confirm; 
     } 
     else 
      $data['URL'] = 'javascript: alert(\'' . stripslashes(Template::GetLangVar('VOTE_NEED_VP')) . '\');'; 

$column[$i++] = Template::Load('vote-reward-column', $data); 

С наилучшими пожеланиями.

+3

Вы можете запутать его и заставить его выглядеть странным и нечитаемым с первого взгляда, но вы не можете полностью скрыть сценарий на стороне клиента, то есть JS от клиента. –

+0

Если я оставлю его таким, то он достаточно безопасен? Меня не волнует, смогут ли они увидеть фактическую ссылку на награду, но мне все равно, если люди не смогут что-то использовать. Так ? –

+0

Вы shoudl ставите javascript в функцию и добавляете его с обработчиком события к ссылке, вместо того, чтобы помещать javascript непосредственно в атрибут href. Таким образом, он не будет отображаться в строке состояния браузера при наведении курсора на ссылку. – Pevara

ответ

2

Имейте в виду, что даже если вы можете скрыть JavaScript, это не будет безопасная система. Кто-то может запустить WireShark, инструменты разработчика F12 от IE, Firefox Firebug или инструменты разработчика Chrome, и посмотреть, с какими вещами идут страницы, или отладить любой вызов, затрагивающий DOM, даже если ваш код является полным тарабарщиком.

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

Смежные вопросы