Защита страницы при помощи JS

F

Fancb

<html>
<head>
<title>Ввод логина и пароля</title>
</head>
<body>

<script language="JavaSсript"><!--
var bad_password = true

function check_password() {
login_value = document.forms['check_form'].user_login.value
password_value = document.forms['check_form'].user_password.value
login_value = login_value.toLowerCase()
password_value = password_value.toLowerCase()
if (login_value && password_value && ((login_value + password_value) != 'invisible')) {
bad_password = false
document.images['checker'].src = login_value + password_value + '.gif'
} else {
password_error()
}
}

function test_password() {
if (!bad_password) {
var login_value = document.forms['check_form'].user_login.value
var password_value = document.forms['check_form'].user_password.value
login_value = login_value.toLowerCase()
password_value = password_value.toLowerCase()
self.location = login_value + password_value + '.htm'
}
}

function password_error() {
bad_password = true
document.images['checker'].src = 'invisible.gif'
status = 'Ошибка ввода пароля'
alert('Неверный пароль! Повторите ввод')
status = ''
}

<form name=”check_form”>
Login: <input type=”text” name=”user_login”><br>
Password: <input type=”password” name=”user_password”><br>
<input type=”button” value=”Войти” onClick=”check_password()”>
</form>

<img src=”invisible.gif” name=”checker” height=”l” width=”l” onLoad=”test_password()” onError=”password_error()”>

</body>
</html>
 
F

Fancb

Так же имеется такой способ, но в этом случае Ваши друзья должны иметь права доступа:

Скрипт ниже надо разместить на странице.

<script>

var mintextsize=20;
var charcode = new Array();

var charmap=" `1234567890-=~!@#$%^&*()_+qwertyuiop[]QWERTYUIOP{}asdfghjkl;'ASDFGHJKL:\"zxcvbnm,./ZXCVBNM<>?|йцукенгшщзхъЙЦУКЕНГШЩЗХЪфывапролджэФЫВАПРОЛДЖЭячсмитьбю.ЯЧСМИТЬБЮ,";

var chars = new Array();

for(var i=0;i<charmap.length;i++)
{
chars[chars.length]= escape(charmap.substring(i,i+1));
}

for(var i=0;i<chars.length;i++)
{
charcode[charcode.length] = parseInt(100 + i);
}

function codechar(str)
{
var tmp="";
for(var i=0; i<chars.length; i++)
{
if(unescape(chars)==unescape(str)) { tmp = charcode; return tmp; }
}
return tmp;
}

function code()
{

if(document.coder.source.value.length < mintextsize) {
alert("Длина сообщени\я должна быть не менее " + mintextsize + " символов!"); return;
}

if(document.coder.username.value == "") {
alert("Введите им\я пользовател\я!"); return;
}

if(document.coder.username.value.length < 3) {
alert("Длина имени прользовател\я должна быть не менее 3 символов!"); return;
}


if(document.coder.key.value == "") {
alert("Введите ключ дл\я шифровани\я сообщени\я!"); return;
}

if(document.coder.key.value.length < 3) {
alert("Длина ключа должна быть не менее 3 символов!"); return;
}

var codekey = document.coder.key.value;
var tocode = document.coder.source.value;
var username = document.coder.username.value;

var resultKey = "";
var resultUserName="u";
var controlSum=0;
var tmp="";

for(var h=0;h<codekey.length;h++)
{
tmp = "" + codechar(escape(codekey.substring(h,h+1)));
resultKey += tmp;
controlSum += parseInt(tmp);
}

for(var h=0;h<username.length;h++)
{
resultUserName += "" + codechar(escape(username.substring(h,h+1)));
}

codekey = resultKey;

var result="";
for(var i=0; i < tocode.length; i++)
{
result += "" + codechar(tocode.substring(i,i+1));
}

var allcode = "";
var t1="",t2="", t3="";

var cicle = result.length/3;

var fl=0;
var w=0;

for(var q=0;q<parseInt(cicle);q++)
{

if(fl >= codekey.length ) fl=0;

t1 = "" + codekey.substring(fl,parseInt(fl+3));

t2 = result.substring(w,w+3);

t3 = parseInt(t1) + parseInt(t2);
allcode += "" + (t3);

fl += 3;
w+=3;

}

document.coder.result.value= "var " + resultUserName + "=\"" + allcode + "\";\nvar c" +resultUserName +"=" + controlSum+ ";\nusersArray[usersArray.length]=\"" + resultUserName + "\";";
}

</script>
</head>

<body>
<center>
<form name="coder">
Исходный текст:<br>
<textarea name="source" wrap=virtual cols=37 rows=10></textarea>
<br clear=left>
<br clear=left>
Имя юзера:&nbsp;<input type=text size=40 name="username" value=""><br>
Ключ:&nbsp;<input type=text size=40 name="key" value="">
<br clear=left>
<br clear=left>
<input type=button value=" Закодировать " onClick="code()">
<br clear=left>
<br clear=left>
Результат:<br>
<textarea name="result" wrap=virtual cols=37 rows=10></textarea>

</form>

</center>

 
F

Fancb

Еще версия:

<html>
<head>
<META http-equiv="Content-Type" content="text/html; charset=windows-1251">
<Style>
A:Link{ Color: #000000; Text-decoration: underline}
A:Visited{ Color: #000000; Text-decoration: underline}
A:Hover{ Color: #000000; Text-decoration: none}
td, body {font-family: verdana, arial, helvetica; font-size:11px;}
</Style>

<!-- HEAD START HERE -->

<script LANGUAGE="JavaSсript">
<!--start stealth

function Getstats() {
window.status=('Attempting to Login to user area.')

var AccId;
var iName;
AccId = document.iAccInput.iAccID.value
iName = document.iAccInput.iName.value

if (AccId == "" || iName == "")
{
alert('\nERROR\n\n\nYou must enter ALL Details,\nto View your statistics.\n');
window.status=('Missing data or Invalid. Check spelling and Ensure Names are in Correct Case.')
}
else
{

var location=("pw" + iName + AccId + ".htm");
this.location.href = location;
window.status=(' Verifying: ' + iName + '-' + AccId + ' Please wait........');
}
}
<!--- Hide from old browsers
function Verifyacc2() {
window.status=('Please enter your Username and Account ID...');
var oName = prompt("Enter your User Name: \n(Case Sensitive)\n", "")
window.status=(' UserName = ' + oName);
var oAccID = prompt("Enter your account ID: \n(Case Sensitive)\n", "")
window.status=(' Account ID = ' + oAccID);
if (oAccID == "" || oName == "" || oAccID == "null" || oName == "null")
{
alert('\nERROR\n\nYou must enter ALL Details,\nto view your statistics.');
window.status=('Missing data or Invalid. Check spelling and Ensure Names are in Correct Case.');
}
else{
window.status=(' Verifying: ' + oName + '-' + oAccID + ' Please wait........');
var location=("pw" + oName + oAccID + ".html");
this.location.href = location;
}
}


<!-- HEAD END HERE -->




</head>
<body bgcolor="#EDEDED" text="#000000" link="#000000" topmargin="0" leftmargin="0">
<center>

<!-- BODY START HERE -->

<p align="CENTER"><b>Login</b></p>
<form name="iAccInput">
<div align="center">
<center>
<table border="3" cellpadding="2" cellspacing="8" bgcolor="#C0C0C0" bordercolor="#808080" bordercolorlight="#808080" bordercolordark="#000000">
<tr>
<td align="RIGHT"><font size="3" color="#FF0000" face="Arial"><b>User
Name:</b><br>
<br>
<b>Password:</b></font></td>
<td><input type="TEXT" name="iName" maxlength="15" size="20"><br>
<input name="iAccID" maxlength="15" height="50" size="20"></td>
<td><input type="BUTTON" value=" Login " onclick="Getstats()" height="40" width="50"><br>
<input type="RESET" value=" Reset " onclick="window.status=('RESET: Please enter your USERNAME and ACCOUNT ID.')" width="50"></td>
</tr>
</table>
</center>
</div>
</form>


<!
 
F

Fancb

еще версия:

<html>
<head>
<title>Digital Password</title>
<META http-equiv="Content-Type" content="text/html; charset=windows-1251">
<Style>
A:Link{ Color: #000000; Text-decoration: underline}
A:Visited{ Color: #000000; Text-decoration: underline}
A:Hover{ Color: #000000; Text-decoration: none}
td, body {font-family: verdana, arial, helvetica; font-size:11px;}
</Style>

<!-- HEAD START HERE -->

<script LANGUAGE="javasсript">

function go(arg){

location.href = arg.expr.value + ".html";
}
function enter(arg, string){
arg.expr.value += string
}
function cler(arg){
arg.expr.value = ''
}
</SCRIPT>

<!-- HEAD END HERE -->




</head>
<body bgcolor="#EDEDED" text="#000000" link="#000000" topmargin="0" leftmargin="0">
<center>

<!-- BODY START HERE -->

<form>
<table border=1>
<tr>
<td bgcolor="dcdcdc" colspan=3 align=center class="copy2">Введите пароль</td>
</tr>
<tr>
<td align="center" colspan=3><input type="password" name="expr" size=8 action="calculate(this.form)"></td>
</tr>
<tr>
<td align="center"><input type="button" value=" 1 " onClick="enter(this.form, 1)"></td>
<td align="center"><input type="button" value=" 2 " onClick="enter(this.form, 2)"></td>
<td align="center"><input type="button" value=" 3 " onClick="enter(this.form, 3)"></td>
</tr>
<tr>
<td align="center"><input type="button" value=" 4 " onClick="enter(this.form, 4)"></td>
<td align="center"><input type="button" value=" 5 " onClick="enter(this.form, 5)"></td>
<td align="center"><input type="button" value=" 6 " onClick="enter(this.form, 6)"></td>
</tr>
<tr>
<td align="center"><input type="button" value=" 7 " onClick="enter(this.form, 7)"></td>
<td align="center"><input type="button" value=" 8 " onClick="enter(this.form, 8)"></td>
<td align="center"><input type="button" value=" 9 " onClick="enter(this.form, 9)"></td>
</tr>
<tr>
<td align="center"><input type="button" value="Cl" onClick="cler(this.form)"></td>
<td align="center"><input type="button" value=" 0 " onClick="enter(this.form, 0)"></td>
<td align="center"><input type="button" value=" = " onClick="go(this.form)"></td>
</tr>
</table>
</form>

<p>Теперь создайте в той же директории что и файл с формой пароля другой файл.
Название нового файла должно состоять только из фифр, например, 2333394.html. Именно
эти цифры и будут паролей доступа.<p>

<!-- BODY END HERE -->



</body>
</html>
 
F

Fancb

еше версия:

<html>
<head>
<title>JS Password</title>
<META http-equiv="Content-Type" content="text/html; charset=windows-1251">
<Style>
A:Link{ Color: #000000; Text-decoration: underline}
A:Visited{ Color: #000000; Text-decoration: underline}
A:Hover{ Color: #000000; Text-decoration: none}
td, body {font-family: verdana, arial, helvetica; font-size:11px;}
</Style>

<!-- HEAD START HERE -->

<script language="JavaSсript">

<!--

function testEncode(form) {
var dater = 8;
Day = 8;
dater = null;
var Ret = encode (form.inputbox1.value, Day)
location = Ret + "index.html"
}

function encode (OrigString, CipherVal) {
Ref="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
CipherVal = parseInt(CipherVal)
var Temp=""
for (Count=0; Count < OrigString.length; Count++) {
var TempChar = OrigString.substring (Count, Count+1)
var Conv = cton(TempChar)
var Cipher=Conv^CipherVal
Cipher=ntoc(Cipher)
Temp += Cipher
}
return (Temp)
}

function cton (Char) {
return (Ref.indexOf(Char));
}

function ntoc (Val) {
return (Ref.substring(Val, Val+1))
}


</script>

<!-- HEAD END HERE -->




</head>
<body bgcolor="#EDEDED" text="#000000" link="#000000" topmargin="0" leftmargin="0">
<center>

<!-- BODY START HERE -->


Введите пароль ( например Hello )<br>
<form name="testform" onsubmit="false;">
<input type="password" size="35" name="inputbox1">
<input type="button" name="button" value="OK" onclick="testEncode(this.form)">
</form>

<!-- BODY END HERE -->

<font face="Arial" size=2 color=#FF0000>
Если Вы введете слово Hello с большой буквы - скрипт сформирует имя страницы z6ttg.htm и переадресует
на нее. В других случаях имя страницы будет другим.
</font>



</body>
</html>
 
I

irinka_kolosova

Гм...А где соединение с базой данных на сервере? Где хранятся пароли, права доступа?
 
F

Fancb

классическая версия:

<html>
<head>
<title>Passworder</title>
<META http-equiv="Content-Type" content="text/html; charset=windows-1251">
<Style>
A:Link{ Color: #000000; Text-decoration: underline}
A:Visited{ Color: #000000; Text-decoration: underline}
A:Hover{ Color: #000000; Text-decoration: none}
td, body {font-family: verdana, arial, helvetica; font-size:11px;}
</Style>

<!-- HEAD START HERE -->

<!-- Passworder 1.3 SCRIPT -->
<script language="JavaSсript">
pass = prompt('Enter Password (1234), please:','1234');
if (pass=='1234') { alert('!!!Right!!!') } else { alert('!!!Go Away!!!'), top.location.href="/" }
</script><!-- Passworder 1.3 SCRIPT END -->

<!-- HEAD END HERE -->




</head>
<body bgcolor="#EDEDED" text="#000000" link="#000000" topmargin="0" leftmargin="0">
<center>

<!-- BODY START HERE -->



<!-- BODY END HERE -->



</body>
</html>
 
F

Fancb

Привет, Алан :0) Ты же не думал, что я дам полный расклад? Тут есть скрипты не требующие сервака - можно юзать их. Уж ты то понимаешь, что давать все готовое - сакс, потому, что люди так и не станут думать и учиться решать задачи сами. А это в цели группы не входит.
 
I

irinka_kolosova

Ну, тебе конечно виднее. Хотя я не вижу сложности написать 20 строчек на PHP, отрегулировать .htaccess и пропарсить XML с паролями ;)
 
F

Fancb

Именно так. Немного почитать и все будет Хеппи. Именно по этой причине и нет тут упоминаемой тобой пары десяток строк. Если бы они были терялся бы смысл группы - помощь. ПОМОЩЬ, а не полное решение за одногруппников их сложностей :0)
 
R

Rool_Ra

oi pomogite poniat mne JS nikak u menia ne polu4aetsa, mojet kto znaet poleznuiu informatsiu v inete?
 
S

serfer

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

Fancb

Самое НЕЛЕПОЕ то, что предыдущий ОРАТОР не предложил ничего лучшего взамен. То есть ТРЕПЛО пустозвонное.
 
S

serfer

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

Fancb

И без ИМХО это очевидно... И речь идет именно о клиентоориентированной стороне способов защиты страницы... Именно поэтому Ваши сентенции пусты. Пока пусты. Пока не предложили ничего существеннее, чем то, что тут указано, при ЗАДАННОМ условии.

П.С.
Кстати, подавляющее большинство не ломанет и эту защиту, а это и есть ГЛАВНАЯ задача - минимизировать риски.
 
S

serfer

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

Fancb

Как бы то нибыло в итоге мы видим, что от подавляющего болшинства он защитит. А на регулярную армию тоже должен иметься ответ в принципе. В нашем случае - серверная защита. Что ж, пусть будет ajax. Предложите версию конкретным примером, которая будет существенно надежнее уже описанного.
 
P

pelageja

все что написано выше бред =) причем полный
 

Статистика форума

Темы
200.483
Сообщения
380.310
Пользователи
327.891
Новый пользователь
igr2703