Linux-BG
Начало
Помощ
Търси
Календар
Вход
Регистрирай
Добре дошъл/дошла,
Гост
. Моля,
въведи своето потребителско име
или
се регистрирай
.
Влез с потребителско име, парола и продължителност на сесията
Linux за българи: Форуми
>
Програмиране
>
Web development
(Модератор:
VladSun
) >
WML и специални символи
Страници: [
1
]
Надолу
« назад
напред »
Изпечатай
Автор
Тема: WML и специални символи (Прочетена 2869 пъти)
rat
Напреднали
Публикации: 266
WML и специални символи
«
-:
Nov 03, 2005, 10:35 »
Здравейте,
Имам следната ситуация :
Имам проста логин форма на WML с потребителско име и парола.
Формичката се събмитва към друг скрипт :
Примерен код
<wml>
<card title="Login">
<p>
Username: <input name="username" size="15"/><br/>
Password: <input name="password" size="15"/>
<anchor>
Login
<go href="http://192.168.1.12/loginwml.php?username=$(username)&password=$(password)">
</go>
</anchor>
</p>
</card>
</wml>
Проблема е че ако в името или паролата се съдържа амперсант(&) , в другия скрипт получавам данните без този символ.Опитах да заместя & с & ... без успех .
Опитах и с urlencode() - пак нищо (даже по-зле щото гърми wml-to).
Идеи някакви ?
'>
Активен
http://www.last.fm/user/rat_bg/
VladSun
Moderator
Напреднали
Публикации: 2166
WML и специални символи
«
Отговор #1 -:
Nov 03, 2005, 10:54 »
Не ти давам конкретно решение, но искам да ти кажа, че разрешаването/използването на специални символи в такива полета не е добре по отношение на сигурността - просто укажи, че паролата/потребителя може да е съставен само от стандартните символи (_,-,0-9, az, AZ)
Активен
KISS Principle ( Keep-It-Short-and-Simple )
http://openfmi.net/projects/flattc/
Има 10 вида хора на този свят - разбиращи двоичния код и тези, които не го разбират
Hapkoc
Напреднали
Публикации: 2117
WML и специални символи
«
Отговор #2 -:
Nov 03, 2005, 12:25 »
VladSun, кое точно по отношение на сигурността обуславя специалните символи като неподходящи за използване в парола?
Активен
CaBA
Напреднали
Публикации: 303
WML и специални символи
«
Отговор #3 -:
Nov 03, 2005, 13:58 »
Цитат
разрешаването/използването на специални символи в такива полета не е добре по отношение на сигурността - просто укажи, че паролата/потребителя може да е съставен само от стандартните символи (_,-,0-9, az, AZ)
Може би също така е добре да я ограничим до 8 символа? Подобно изказване не е просто тъпо, то е опасно! Защо изобщо е необходимо да се ползва парола, която може да се разбие за часове от първото скрипт киди?
Колкото до проблема - в твоята постановка (която е зле) трябва да замениш всеки амперсанд в паролата с
Примерен код
&&
Активен
10 години ябълкова диета стигат, стигат!
rat
Напреднали
Публикации: 266
WML и специални символи
«
Отговор #4 -:
Nov 03, 2005, 15:08 »
CaBA :
1.Както съм посочил в поста , вече опитах с този подход.
2.Кое и е зле на постановката ? По принцип това е само тестов скрипт.Единственото което е кофти е метода. Мога да го сложа да e POST а не GET.
Активен
http://www.last.fm/user/rat_bg/
CaBA
Напреднали
Публикации: 303
WML и специални символи
«
Отговор #5 -:
Nov 03, 2005, 17:21 »
Отхвърляне на отговорност: не съм специалист във WAP/WML, само хвърлих едно око на спецификацията.
Първо да обясня как се изпращат заявките в HTTP/HTML модела (поне това ми се струва, че разбирам), за да имаме база за сравнение. Нека разгледаме следната форма
Примерен код
<form method="get" action="login">
<input name="username" type="text"/>
<input name="password" type="password"/>
<input name="Гази!" type="submit"/>
</form>
която потребителят е попълнил име bay.blagoy и парола sof&stroy. Когато потребителя натисне бутона "гази!" Браузърът трябва да изпрати подобна на следната HTTP заявка:
Примерен код
GET /login?username=bay.blagoy&username=sof%26stroy&submit=%D0%B3%D0%B0%D0%B7%D0%B8%21
Забележи, че амперсанда в паролата и стойността на submit бутона са УРИ-кодирани (защо - виж RFC2396, секция 2.2). Уеб сървърът извиква външната програма login, като УРИ-декодира стойностите на параметрите и ги предава като аргументи. Вижда се, че има две места, където постата може да се издъни:
1) браузърът не кодира правилно заявката
2) сървърът не декодира правилно заявката и предава странни параметри на програмата за изпълнение
За да разбереш къде е заровено кучето ти предлагам първо да разгледаш изходящия трафик от браузъра (примерно със снифер или в access лога на сървъра, ако има такъв). Ако той е кодиран според изискванията на RFC2396, както настоява спецификацията на WML, виж кой отговоря за обработката на заявките и му издърпай ушите. Успех!
Активен
10 години ябълкова диета стигат, стигат!
rat
Напреднали
Публикации: 266
WML и специални символи
«
Отговор #6 -:
Nov 03, 2005, 18:35 »
Мерси . Мисля че проблема в точно в броузера. Това е един WAP емулатор, който явно не кодира правилно заявката.В аксес лога виждам следното:
Примерен код
GET /loginwml.php?username=erftger&password=4rgb& HTTP/1.1" 200 277 "-" "M3Gate/0.6"
Както се вижда не е ури кодирал последния символ който е част от паролата.
Проблема е че не знам как да кодирам ръчно стринга от паролата или юзърнейма при положение че променливите в WML се достъпват по този начин :
Примерен код
$(pass)
Тоест нямам достъп до тази променлива в PHP...
Остава ми само да се надявам че нормалните WAP броузъри кодират правилно.
Активен
http://www.last.fm/user/rat_bg/
CaBA
Напреднали
Публикации: 303
WML и специални символи
«
Отговор #7 -:
Nov 03, 2005, 19:32 »
Щом WAP емулатора е виновен, сменяй го! Просто търсене във freshmeat дава този -
http://freshmeat.net/projects/mobilizer/
, но съм сигурен, че има още.
Активен
10 години ябълкова диета стигат, стигат!
Страници: [
1
]
Нагоре
Изпечатай
« назад
напред »