{% else-1 %}
Обновить | Подписаться | Поднять тему
Чтобы выполнить действие авторизируйтесь или пройдите регистрацию на сайте.
1.
Fridrix * 0.09
[автор] (24 июл 2015, 23:26) [0/0] [0] [отв] [спам] [под] +1 | -1

$nick=my_esc($_POST['nick']); /nick.php

mysql_query("UPDATE `user` SET`nick` = '".$nick."'WHERE `id` = '$user[id]' LIMIT 1"*;
помогите с xss пожалуйста. Что то тут я не соображу. Будьте не сходительны пожалуйста.
Добавлено 24.07.15 в 23:32:17:
<?
include_once '../../sys/inc/
start.php';
include_once '../../sys/inc/
compress.php';
include_once '../../sys/inc/
sess.php';
include_once '../../sys/inc/
home.php';
include_once '../../sys/inc/
settings.php';
include_once '../../sys/inc/
db_connect.php';
include_once '../../sys/inc/
ipua.php';
include_once '../../sys/inc/
fnc.php';
include_once '../../sys/inc/
user.php';
only_reg();
$set
['title']="Смена Ника!";
include_once '../../sys/inc/
thead.php';
title();
aut();
if (isset($_GET
['ok']) && isset($_POST
['ok'])){
if (mysql_result
(mysql_query
("SELECT COUNT
(*) FROM `user` WHERE `nic
($_POST['nick'])."'"*,0)==0)
{
$nick=my_esc($_POST
['nick']);
if( !preg_match("#^([A-
zА-я0-9-_ ])+$#ui", $_POST
['nick']))$err
[]='В нике присутствуют з
if (preg_match("#[a-
z]+#ui", $_POST
['nick']) && preg_match
("#[а-я]+#ui", $_POST
['nick']))$err
[]='Разрешается использо
if (preg_match("#(^ )|
( $)#ui", $_POST
['nick']))$err
[]='Запрещено использов
if (strlen2($nick)<3)$err="К
if (strlen2($nick)>32)$err="
}
else $err
[]='Ник "'.stripcslashes
(htmlspecialchars($_POST
['nick'])).'" уже занят';
if (!$err){
if($user
['rating'] >= 50 && isset
($user['id'])){
mysql_query
("UPDATE `user` SET `money
($user
['money']-3)."' WHERE `id` =
[id]' LIMIT 1"*;
}else{
mysql_query
("UPDATE `user` SET `money
($user
['money']-5)."' WHERE `id` =
[id]' LIMIT 1"*;
}
mysql_query
("UPDATE `user` SET `nick` =
$nick."' WHERE `id` = '$user
[id]' LIMIT 1"*;
msg
("Ник успешно изменено
[nick] на $nick!"*;
echo "<div class='foot'><a
nick'>Вернутся назад</
a></div>" ;
include_once '../sys/inc/
tfoot.php';
}
}
err();
echo "<div class='foot'>
\n";
echo "<img src='/style/
icons/
str2.gif' alt='*'> <a href='/
info.php'> $user[nick]</
a> | Смена ника!<br />
\n" ;
echo "</div>\n";
if($user
['rating'] >= 50 && isset
($user['id'])){
if($user['money'] > 3){
echo "<div class='mess'>Те
$user[nick]</
b><br>Стоимость услуги 3
[2]!</div>";
echo "<div class='main'>";
echo "<form method='post
nick&ok'>";
echo "<b>На какой будем
b><br>
" ;
echo "<input type='text' n
";
echo "<input type='submit'
umenu.php'> Отмена</
a></form>" ;
echo "</div>";
}else{
echo"<div class='mess'>Не
[2]</div>";
}
}else{
if( $user['money'] > 5){
echo "<div class='mess'>Те
$user[nick]</
b><br>Стоимость услуги 5
[2]!</div>";
echo "<div class='main'>";
echo "<form method='post
nick&ok'>";
echo "<b>На какой будем
b><br>
" ;
echo "<input type='text' n
";
echo "<input type='submit'
a></form>";
echo "</div>";
}else{
if ( $user['pol']==0){
echo "<div class='mess'>Из
[2] чтобы сменить ник!
</div>";
}else{
echo"<div class='mess'>Из
[2] чтобы сменить ник!
</div>";
}
}
}
echo "<div class='foot'>
\n";
echo "<img src='/style/
icons/
str2.gif' alt='*'> <a href='/
info.php'> $user[nick]</
a> | Смена ника!<br />
\n" ;
echo "</div>\n";
include_once '../../sys/inc/
tfoot.php';?>

2. (24 июл 2015, 23:32) [0/0] [0] [отв] [спам] [под] +1 | -1

Многие говорят, что это неправильно, но я бы юзнул htmlspecialchars при вводе в бд. Тогда не будет хуссоски

3.
Fridrix * 0.09
[автор] (24 июл 2015, 23:32) [0/0] [0] [отв] [спам] [под] +1 | -1

<?
include_once '../../sys/inc/
start.php';
include_once '../../sys/inc/
compress.php';
include_once '../../sys/inc/
sess.php';
include_once '../../sys/inc/
home.php';
include_once '../../sys/inc/
settings.php';
include_once '../../sys/inc/
db_connect.php';
include_once '../../sys/inc/
ipua.php';
include_once '../../sys/inc/
fnc.php';
include_once '../../sys/inc/
user.php';
only_reg();
$set
['title']="Смена Ника!";
include_once '../../sys/inc/
thead.php';
title();
aut();
if (isset($_GET
['ok']) && isset($_POST
['ok'])){
if (mysql_result
(mysql_query
("SELECT COUNT
(*) FROM `user` WHERE `nic
($_POST['nick'])."'"*,0)==0)
{
$nick=my_esc($_POST
['nick']);
if( !preg_match("#^([A-
zА-я0-9-_ ])+$#ui", $_POST
['nick']))$err
[]='В нике присутствуют з
if (preg_match("#[a-
z]+#ui", $_POST
['nick']) && preg_match
("#[а-я]+#ui", $_POST
['nick']))$err
[]='Разрешается использо
if (preg_match("#(^ )|
( $)#ui", $_POST
['nick']))$err
[]='Запрещено использов
if (strlen2($nick)<3)$err="К
if (strlen2($nick)>32)$err="
}
else $err
[]='Ник "'.stripcslashes
(htmlspecialchars($_POST
['nick'])).'" уже занят';
if (!$err){
if($user
['rating'] >= 50 && isset
($user['id'])){
mysql_query
("UPDATE `user` SET `money
($user
['money']-3)."' WHERE `id` =
[id]' LIMIT 1"*;
}else{
mysql_query
("UPDATE `user` SET `money
($user
['money']-5)."' WHERE `id` =
[id]' LIMIT 1"*;
}
mysql_query
("UPDATE `user` SET `nick` =
$nick."' WHERE `id` = '$user
[id]' LIMIT 1"*;
msg
("Ник успешно изменено
[nick] на $nick!"*;
echo "<div class='foot'><a
nick'>Вернутся назад</
a></div>" ;
include_once '../sys/inc/
tfoot.php';
}
}
err();
echo "<div class='foot'>
\n";
echo "<img src='/style/
icons/
str2.gif' alt='*'> <a href='/
info.php'> $user[nick]</
a> | Смена ника!<br />
\n" ;
echo "</div>\n";
if($user
['rating'] >= 50 && isset
($user['id'])){
if($user['money'] > 3){
echo "<div class='mess'>Те
$user[nick]</
b><br>Стоимость услуги 3
[2]!</div>";
echo "<div class='main'>";
echo "<form method='post
nick&ok'>";
echo "<b>На какой будем
b><br>
" ;
echo "<input type='text' n
";
echo "<input type='submit'
umenu.php'> Отмена</
a></form>" ;
echo "</div>";
}else{
echo"<div class='mess'>Не
[2]</div>";
}
}else{
if( $user['money'] > 5){
echo "<div class='mess'>Те
$user[nick]</
b><br>Стоимость услуги 5
[2]!</div>";
echo "<div class='main'>";
echo "<form method='post
nick&ok'>";
echo "<b>На какой будем
b><br>
" ;
echo "<input type='text' n
";
echo "<input type='submit'
a></form>";
echo "</div>";
}else{
if ( $user['pol']==0){
echo "<div class='mess'>Из
[2] чтобы сменить ник!
</div>";
}else{
echo"<div class='mess'>Из
[2] чтобы сменить ник!
</div>";
}
}
}
echo "<div class='foot'>
\n";
echo "<img src='/style/
icons/
str2.gif' alt='*'> <a href='/
info.php'> $user[nick]</
a> | Смена ника!<br />
\n" ;
echo "</div>\n";
include_once '../../sys/inc/
tfoot.php';?>

4. (24 июл 2015, 23:33) [0/0] [0] [отв] [спам] [под] +1 | -1

Тобишь $nick=my_esc(htmlspecialchars($_POST))

5.
Fridrix * 0.09
[автор] (24 июл 2015, 23:34) [0/0] [0] [отв] [спам] [под] +1 | -1

Кидорас, добрый человек а как это сделать правильно.

6.
ESET * 1.09
(24 июл 2015, 23:38) [0/0] [0] [отв] [спам] [под] +1 | -1
Fridrix,

не слушай его, он фигню несет. на входе в базу нужно только экранировать кавычки, а на выводе в браузер пропускать через htmlspecialchars()

7.
Fridrix * 0.09
[автор] (24 июл 2015, 23:41) [0/0] [0] [отв] [спам] [под] +1 | -1

ESET, подсказк пожалуйста кусок как это верно сделать.

8.
ESET * 1.09
(25 июл 2015, 00:58) [0/0] [0] [отв] [спам] [под] +1 | -1
Fridrix,

кавычки экранируются функцией mysql_real_escape_string()

9. (25 июл 2015, 03:20) [0/0] [0] [отв] [спам] [под] +1 | -1
ESET,

Ну вот. Ты из второй половины. Аргументируй, в чем я не прав?
В том, что я храню в бд не html код, а его сущности? По-твоему, хранить код безопаснее?) Не удобнее ли использовать фильтрацию при вводе, чтобы не юзать ее сотни раз при выводе?) Нагрузка на бд? Mysql замедлится от пары лишних (имхо, они не лишние) символов в строке? Так может тогда стоит смотреть в сторону другой субд? Ты можешь начать мне заливать про создание крупного проекта, давай, мне будет очень интересно почитать о том, как это отразится на проекте с онлайном в сто тысяч...
Хотя нет... Пожалуй, не интересно. Ибо, при установке индексов к таблице, составлении грамотных запросов, оптимизации настроек субд под железо, субд даже не заметит эти лишние символы. Ей будет насрать, перебрать строку в 100 символов, или 120. Неговоря уж о том, что половину данных можно попросту пустить в кеш. Так что, имхо, лучше уж хранить на 5-10 символов больше в бд, чем юзать 5-10 фильтров при выводе из бд. Не дай бог еще забудешь, тогда вообще все по пизде пойдет. *
Добавлено 25.07.15 в 03:26:25:
Опять же. Новичку, наподобие автора темы, не в обиду, бро, лучше уж фильтрануть один раз при записи, чем ебать моск при выводе. *

10.
ESET * 1.09
(25 июл 2015, 10:44) [0/0] [0] [отв] [спам] [под] +1 | -1
Кидорас,

а если придется разбивать текст на части, например на страницы? или просто обрезать по длине символов, например для превью для новостей?
символ "<" разобьется на "&l" и "t;"
и как ты будешь делать поиск по таким символам?
ну ты понял?

вобщем, htmlspecialchars() используеься ТОЛЬКО на выводе и нигде больше


Изм. 1 раз. / Посл. изм.
ESET * 1.09
(25 июл 2015, 10:46)
Чтобы писать сообщения авторизируйтесь или пройдите регистрацию на сайте.
Подписаны: 0
Скачать тему | Файлы темы | Фильтр сообщений