Вам следует проверить Pligg ( pligg.com ). В нем говорится, что это система «Управление контентом с открытым исходным кодом», но на самом деле это версия Digg с открытым исходным кодом. Они скопировали дизайн digg и сделали версию с открытым исходным кодом, чтобы другие люди (например, вы) могли создавать свои собственные сайты Digg. Его PHP и Mysql, и его простой в использовании и администрировании. Лицензия является GPLish (Affero), и если вы хотите, вы можете узнать больше о лицензии Affero здесь . Надеюсь, это поможет.
function makeHTMLAttributeSafe($string) {
$scaryCharacters = array(32, 37, 42, 43, 44, 45, 47, 59, 60, 61, 62, 94, 124);
$translationTable = array();
foreach ($scaryCharacters as $num) {
$hex = str_pad(dechex($num), 2, '0', STR_PAD_LEFT);
$translationTable[chr($num)] = '&#x' . $hex . ';';
}
$string = strtr($string, $translationTable);
return $string;
}
Последняя проблема - недопустимые символы UTF-8 - при доставке в некоторые браузеры неправильно сформированная последовательность байтов UTF-8 может вырываться из объекта HTML. Чтобы защититься от этого, просто убедитесь, что все полученные символы UTF-8 действительны:
function assertValidUTF8($string) {
if (strlen($string) AND !preg_match('/^.{1}/us', $string)) {
die;
}
return $string;
}
Модификатор u
в этом регулярном выражении делает его регулярным выражением соответствия Unicode. Сопоставляя один символ, .
, мы уверены, что вся строка является допустимой Unicode.
Поскольку все это зависит от контекста, лучше всего выполнить любую из этих кодировок в самый последний возможный момент - непосредственно перед тем, как представить результат пользователю. Участие в этой практике также позволяет легко увидеть все места, которые вы пропустили.
OWASP предоставляет большой объем информации в их шпаргалке по предотвращению XSS .
неправильно сформированная последовательность байтов UTF-8 может вырваться из объекта HTML. Чтобы защититься от этого, просто убедитесь, что все полученные символы UTF-8 действительны:function assertValidUTF8($string) {
if (strlen($string) AND !preg_match('/^.{1}/us', $string)) {
die;
}
return $string;
}
Модификатор u
в этом регулярном выражении делает его регулярным выражением соответствия Unicode. Сопоставляя один символ, .
, мы уверены, что вся строка является допустимой Unicode.
Поскольку все это зависит от контекста, лучше всего выполнить любую из этих кодировок в самый последний возможный момент - непосредственно перед тем, как представить результат пользователю. Участие в этой практике также позволяет легко увидеть все места, которые вы пропустили.
OWASP предоставляет большой объем информации в их шпаргалке по предотвращению XSS .
неправильно сформированная последовательность байтов UTF-8 может вырваться из объекта HTML. Чтобы защититься от этого, просто убедитесь, что все полученные символы UTF-8 действительны:function assertValidUTF8($string) {
if (strlen($string) AND !preg_match('/^.{1}/us', $string)) {
die;
}
return $string;
}
Модификатор u
в этом регулярном выражении делает его регулярным выражением соответствия Unicode. Сопоставляя один символ, .
, мы уверены, что вся строка является допустимой Unicode.
Поскольку все это зависит от контекста, лучше всего выполнить любую из этих кодировок в самый последний возможный момент - непосредственно перед тем, как представить результат пользователю. Участие в этой практике также позволяет легко увидеть все места, которые вы пропустили.
OWASP предоставляет большой объем информации в их шпаргалке по предотвращению XSS .
function assertValidUTF8($string) {
if (strlen($string) AND !preg_match('/^.{1}/us', $string)) {
die;
}
return $string;
}
Модификатор u
в этом регулярном выражении делает его регулярным выражением соответствия Unicode. Сопоставляя один символ, .
, мы уверены, что вся строка является допустимой Unicode.
Поскольку все это зависит от контекста, лучше всего выполнить любую из этих кодировок в самый последний возможный момент - непосредственно перед тем, как представить результат пользователю. Участие в этой практике также позволяет легко увидеть все места, которые вы пропустили.
OWASP предоставляет большой объем информации в их шпаргалке по предотвращению XSS .
function assertValidUTF8($string) {
if (strlen($string) AND !preg_match('/^.{1}/us', $string)) {
die;
}
return $string;
}
Модификатор u
в этом регулярном выражении делает его регулярным выражением соответствия Unicode. Сопоставляя один символ, .
, мы уверены, что вся строка является допустимой Unicode.
Поскольку все это зависит от контекста, лучше всего выполнить любую из этих кодировок в самый последний возможный момент - непосредственно перед тем, как представить результат пользователю. Участие в этой практике также позволяет легко увидеть все места, которые вы пропустили.
OWASP предоставляет большой объем информации в их шпаргалке по предотвращению XSS .
Лучше всего выполнить любую из этих кодировок в самый последний возможный момент - прямо перед тем, как представить вывод пользователю. Участие в этой практике также позволяет легко увидеть все места, которые вы пропустили.OWASP предоставляет большой объем информации в их шпаргалке по предотвращению XSS .
Лучше всего выполнить любую из этих кодировок в самый последний возможный момент - прямо перед тем, как представить вывод пользователю. Участие в этой практике также позволяет легко увидеть все места, которые вы пропустили.OWASP предоставляет большой объем информации в их шпаргалке по предотвращению XSS .
Перед отображением пользователю необходимо закодировать его с помощью htmlspecialchars
. Обычно этого достаточно при работе с данными за пределами тега