Pergunta

Eu estou olhando para começar uma hospedado CMS-como serviço para os clientes.

Como seria, seria necessário que o cliente de entrada de texto que iria ser servido a qualquer pessoa que vem visitar o seu site.Eu estou pensando em usar Markdown, possivelmente em combinação com armas de destruição em massa (ao vivo markdown de pré-visualização que ENTÃO usa) para os grandes blocos de texto.

Agora, devo ser desinfecção sua entrada para html?Dado que há apenas um punhado de pessoas editando o seu "CMS", todos os clientes pagantes, eu deveria estar excluindo o código HTML incorreto, ou eu deveria apenas deixá-los à solta?Afinal, é o seu 'site'

Editar: A principal razão pela qual eu gostaria de fazer é deixá-los usar suas próprias javascript, e têm o seu próprio css e divs e o que não é para a saída

Foi útil?

Solução

Por seria não você higienizar a entrada?

Se você não fizer isso, você está convidando calamidade -., Quer o seu cliente ou você mesmo ou ambos

Outras dicas

Sua pergunta pergunta:

"Editar:A principal razão pela qual eu gostaria de fazer é deixá-los usar suas próprias javascript, e têm o seu próprio css e divs e o que não é para a saída".

Se você permitir que os usuários para o fornecimento de um JavaScript arbitrário, em seguida, desinfecção de entrada não vale a pena o esforço.A definição de Cross-Site Scripting (XSS) é, basicamente, "os usuários podem fornecer JavaScript e alguns usuários são ruins".

Agora, alguns sites permitem que os usuários para o fornecimento de JavaScript e eles mitigar o risco de uma de duas maneiras:

  1. Host individual do usuário do CMS em um domínio diferente.Blogger e Tumblr (e.g.myblog.blogspot.com vs.blogger.com) fazer isso para impedir que o usuário de modelos de roubar outros cookies do usuário.Você tem que saber o que você está fazendo e nunca hospedar qualquer conteúdo do usuário sob o domínio raiz.
  2. Se o conteúdo do usuário nunca é compartilhada entre os usuários, então, não importa o que o script de usuários mal-intencionados de abastecimento.No entanto, CMS são cerca de partilha, para que este, provavelmente, não se aplica aqui

Há alguma lista Negra filtros lá fora, que pode funcionar, mas eles só funcionam hoje.A especificação HTML e navegadores mudam, o que torna os filtros quase impossível de manter.A lista negra é uma certeza fogo maneira de ter o tanto de segurança e problemas funcionais.

Ao lidar com os dados do usuário, sempre tratá-lo como não confiáveis.Se você não indicar isso no início da do produto e de seus cenários de mudança, é quase impossível voltar e encontrar todos os XSS pontos ou modifythe produto para evitar XSS, sem perturbar o seu blog.

Você também estaria protegendo os funcionários novamente descontentes, ataques de clientes cruz, ou qualquer outro tipo de comportamento idiota.

Você deve sempre sanitize, não importa os usuários ou telespectadores.

Pelo menos parse a sua entrada um só permitem um certo subconjunto "seguro" de HTML tags.

Eu acho que você deve sempre higienizar a entrada. A maioria das pessoas usam um CMS porque não quer criar seu próprio site a partir do zero e eles querem acesso fácil a editar suas páginas. Esses usuários provavelmente não vai estar tentando colocar em texto que iria ficar higienizado, mas protegendo contra ele está a proteger seus usuários.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top