Вообще-то важно не то, ajax это или нет, а то, имеет ли право тот, кто делает этот запрос, на выполнение этого обработчика. Такая проверка создаст ложное ощущение безопасности, и только.
Dokuro Тян: человек, видимо, по памяти писал.
Вам могут быть интересны файлы dmesg и syslog в этой папке. Ну, и по остальным можно пошариться - все логи должны быть здесь.
Вадим: Как у вас устроен пользовательский интерфейс - дело десятое. Важно, чтобы с точки зрения робота существовали страницы товаров и ссылки на них с тех страниц, на которые заходит пользователь (то есть чтобы робот мог дойти с главной до страницы товара по ссылкам).
Не стану спорить насчет "прежде всего", хотя и не согласен. В работе мне именно разговорный английский не требуется совершенно.
Однако сам, пойдя на разговорный курс с крепким навыком чтения (и доков, и беллетристики), был неприятно поражен, насколько, оказывается, не могу связать двух слов... Ну, и хорошее знание грамматики можно получить только на разговорном. При чтении лакуны в грамматике незаметны.
CodeInside:
(char)(rand() %(int)'d' + (int)'a');
аналогично (char)(rand() % 88 + 85);
Результат получается в диапазоне от 85 до 172. Вряд ли вы это имели в виду.
В объявлении, конечно, стоит оставить var. А вот при использовании этого значения, если предполалается глобальная переменная - лучше это явно обозначить. Еще лучше, разумеется, обходиться локальными :)
Видимо, приковать к батарее, чтобы он не мог ни закрыть браузер, ни выключить компьютер...
Не проще залогиненному, но не проанкетированному, при любом входе делать редирект на анкету?
Не разводя гестапо на ровном месте.
Adamos: XSS начинается тогда, когда у вас на странице появляется то, что набрал пользователь, без обработки. Но само оно туда не попадет - сначала оно должно оказаться на сервере, где и должна проводиться чистка. Потому что любая чистка на стороне пользователя элементарно обходится.
У себя на компьютере пользователь может вводить в поля хоть скрипты, хоть вирусы, хоть экстремистские материалы. Бороться с этим на стороне пользователя бесполезно.
Ellik: собственно, полагаю, строки у вас не дублируются. Просто каждой строке из той таблицы, что вам надо, соответствует несколько строк из другой. Ну, так составляйте подзапросы, чтобы свести их к одной нужной.