o validador w3c falha ao entregar para o validator.nu

1

Estou configurando uma instância local do validador W3c em um computador executando o Centos 6.4. Eu instalei usando o yum. Para validação de HTML5, o validador transfere para uma implementação separada, disponível em validator.nu

Eu posso executar a implementação validator.nu com sucesso no Jetty, usando o script fornecido com a distribuição. Eu posso testar isso com sucesso apontando um navegador diretamente no localhost: 8888 e usando-o para validar um site.

Quando tento usar meu validador w3c para validar um site em HTML5, ele tenta fazer o hand-off e falha com a seguinte mensagem:

Checking the Document Type of this document requires the help of an external tool which was either not enabled in this validator, or is currently unavailable. Check in the validator's system configuration that HTML5 Validator is enabled and functional. The error encountered was: 500 Can't connect to localhost:8888 (connect: Permission denied)

Desativar o firewall não ajuda. Nem o apache (que hospeda o validador w3c) nem o Jetty (que hospeda o validador validator.nu) parecem registrar algo relevante.

Quais diferenças relevantes podem existir entre acertar localhost: 8888 a partir de um navegador e de um cgi-bin sob o apache?

Atualização: / var / log / audit / audit / log tem o seguinte:

type=AVC msg=audit(1393503835.221:31235): avc: denied { name_connect } for pid=40041 comm="check" dest=8888 scontext=unconfined_u:system_r:httpd_w3c_validator_script_t:s0 tcontext=system_u:object_r:port_t:s0 tclass=tcp_socket type=SYSCALL msg=audit(1393503835.221:31235): arch=c000003e syscall=42 success=no exit=-13 a0=3 a1=2340db0 a2=10 a3=21936e0 items=0 ppid=36416 pid=40041 auid=500 uid=48 gid=48 euid=48 suid=48 fsuid=48 egid=48 sgid=48 fsgid=48 tty=(none) ses=1 comm="check" exe="/usr/bin/perl" subj=unconfined_u:system_r:httpd_w3c_validator_script_t:s0 key=(null)

    
por Dominic Cronin 27.02.2014 / 13:53

1 resposta

2

Você tem um problema no SELinux. Seu httpd_w3c_validator_script_t está sendo negado acesso para abrir um soquete TCP.

No entanto, vejo na política atual do SELinux que isso deve ser permitido.

allow httpd_w3c_validator_script_t httpd_w3c_validator_script_t : tcp_socket { ioctl read write create getattr setattr lock append bind connect listen accept getopt setopt shutdown } ;

Sugiro que você atualize o pacote selinux-policy no sistema afetado. (E enquanto você está nisso, atualize o resto do sistema também. Estamos no 6.5 agora ...) Se isso não resolver o problema, relate um bug no upstream.

    
por 27.02.2014 / 14:45