Хорошо -Weverything
позволяет довольно много предупреждений, некоторые из которых, как известно, бросают нежелательные предупреждения.
Здесь ваш код запускает предупреждение cast-align
, которое явно говорит
cast from ... to ... увеличивает необходимое выравнивание от ... до ...
blockquote>И это имеет место здесь, потому что выравнивание для
struct addr
- только 2 тогда как дляstruct addr_in
оно равно 4.Но вы (и программист для
getaddrinfo
...) знаете, что указательp->ai_addr
уже указывает на фактическийstruct addr_in
, поэтому актерский состав Действительный.Вы можете либо:
- , чтобы предупредить огонь и проигнорировать его - ведь это всего лишь предупреждение ...
- отключить его с
-Wno-cast-align
после-Weverything
Должен признать, что я редко использую
-Weverything
по этой причине и использую только-Wall
Альтернативно , если вы знаете, что используете только CLang, вы можете использовать pragmas , чтобы развернуть предупреждение только в этих строках:
for(p = res; p != NULL; p = p->ai_next) { void *addr; std::string ipVer = "IPv0"; #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wcast-align" if(p->ai_family == AF_INET) { ipVer = "IPv4"; struct sockaddr_in *ipv4 = (struct sockaddr_in *)p->ai_addr; addr = &(ipv4->sin_addr); } else { ipVer = "IPv6"; struct sockaddr_in6 *ipv6 = (struct sockaddr_in6 *)p->ai_addr; addr = &(ipv6->sin6_addr); } #pragma clang diagnostic pop .... }
Вы можете попробовать OWASP Java HTML Sanitizer . Это очень просто в использовании.
PolicyFactory policy = new HtmlPolicyBuilder()
.allowElements("a")
.allowUrlProtocols("https")
.allowAttributes("href").onElements("a")
.requireRelNofollowOnLinks()
.build();
String safeHTML = policy.sanitize(untrustedHTML);
Что касается антисемия, вы можете проверить это относительно зависимостей:
http://code.google.com/p/owaspantisamy/issues/detail?id=95&can=1& ; д = redyetidave
Вы можете использовать OWASP ESAPI для Java , библиотеку безопасности, созданную для делать такие операции.
В нем есть не только кодировщики для HTML, но и кодировщики для кодирования JavaScript, CSS и URL. Примеры использования ESAPI можно найти в шпаргалке по предотвращению XSS, опубликованной OWASP.
Вы можете использовать проект OWASP AntiSamy для определения политики сайта, в которой указывается, что разрешено в отправляемом пользователем контенте. Политику сайта можно позже использовать для получения «чистого» HTML-кода, который отображается обратно. Вы можете найти образец файла политики TinyMCE на странице загрузок AntiSamy .