Proteção contra owner e XSS nas mensagens e chat

2 participantes

Ver o tópico anterior Ver o tópico seguinte Ir para baixo

Tópico resolvido Proteção contra owner e XSS nas mensagens e chat

Mensagem por Aejis 08.01.19 15:17

Detalhes da questão


Endereço do fórum: http://alex-fdf.forumeiros.com
Versão do fórum: AwesomeBB

Descrição


Olá, boa tarde.

Estou a criar um fórum com a versão AwesomeBB, mas infelizmente, ao utilizar o script deste tutorial: Proteção contra owner e XSS nas mensagens e chat não funciona, pois o script ainda não está adaptado para a nova versão.

Gostaria que ele fosse atualizado para que possa funcionar corretamente na nova versão.

Agradeço.
Aejis

Aejis
Novo Membro

Membro desde : 06/01/2019
Mensagens : 4
Pontos : 8

https://alex-fdf.forumeiros.com

Ir para o topo Ir para baixo

Admineiro

Tópico resolvido Re: Proteção contra owner e XSS nas mensagens e chat

Mensagem por tikky 08.01.19 16:51

Olá @Aejis,

Bem-vindo ao Fórum dos Fóruns!


Seja bem-vindo ao Fórum dos Fóruns! Como acabou de se inscrever, veja aqui alguns links importantes a saber:

Mude o seu script para:
Código:
(function($) {
  'use strict';
 
  /**
    * Configuration
    */
  var config = {
      /**
      * Attributes to keep
      */
      attributes: [
        'style',
        'class',
      ],
   
      /**
      * Styles to reset
      */
      style: [
        'position',
        'margin',
        'transform',
        'top',
        'right',
        'bottom',
        'left',
      ],
  };
 
  /**
    * Elements queries by forum version
    */
  var query = {
      phpbb2: {
        postbody: '.postbody > div',
      },
   
      phpbb3: {
        postbody: '.content > div',
      },
   
      punbb: {
        postbody: '.entry-content > div > div',
      },
   
      invision: {
        postbody: '.post-entry > div',
      },
   
      modernbb: {
        postbody: '.content > div',
      },

      awesomebb: {
        postbody: '.post-content',
      },
   
      mobile: {
        postbody: '.content > div',
      },
   
      mobile_modern: {
        postbody: '.post-content',
      },
  };
 
  /**
    * Hide posts to avoid pre-render XSS
    */
  var hide = [];
 
  $.each(query, function(version, data) {
      hide.push(data.postbody);
  });
 
  hide = $.grep(hide, function(item, pos) {
      return $.inArray(item, hide) === pos;
  });
 
  var $hide = $('<style>', { html: hide.join(',') + ' { display: none; }' })
      .appendTo('head')
  ;
   
  /**
    * Clear function
    */
  var clear = function(elem) {
      var $this = $(elem);
   
      var attributes = $.map(elem.attributes, function(item) {
        return item.name;
      });
 
      $.each(attributes, function() {
        if (config.attributes.indexOf(this) === -1) {
            elem.removeAttribute(this);
        }
      });
   
      $.each(config.style, function() {
        $this.css(this, '');
      });
  };
 
  /**
    * Clear posts
    */
  $(function() {
      /**
      * Forum version detection
      */
      var version;
   
      $.each({
        phpbb2: '.bodylinewidth',
        phpbb3: '#phpbb',
        punbb: '.pun',
        invision: '#ipbwrapper',
        modernbb: '#modernbb',
        awesomebb: '#wrap',
        mobile: '#mpage-body',
        mobile_modern: '#mpage-body-modern',
      }, function(name, selector) {
        if ($(selector).length) {
            version = name;
            return false;
        }
      });
   
      if (!version) {
        return $hide.remove();
      }
   
      $(query[version].postbody).find('table, tr, td').each(function() {
        clear(this);
      });
   
      $hide.remove();
  });
 
  /**
    * Chatbox override
    */
  var insertChatBoxNew = window.insertChatBoxNew;
 
  window.insertChatBox = window.insertChatBoxNew = function() {
      insertChatBoxNew.apply(this, arguments);
   
      var chatbox = $('#frame_chatbox').get(0);
   
      if (chatbox.readyState === 'complete') {
        return run(event.target.contentWindow);
      }
   
      var onload = chatbox.onload;
   
      chatbox.onload = function(event) {     
        if (onload) {
            onload.apply(this, arguments);
        }
     
        run(event.target.contentWindow);
      };
  };
 
  var run = function(context) {
      /**
      * Clear chatbox
      */
      var refresh = context.Chatbox.prototype.refresh;
   
      context.Chatbox.prototype.refresh = function(data) {
        if (!data.messages || !data.messages.length) {
            return refresh.call(this, data);
        }
     
        $.each(data.messages, function() {
            this.msg = $('<div>', { html: this.msg })
              .find('table, tr, td')
                  .each(function() {
                    clear(this);
                  })
              .end()
              .html()
            ;
        });
     
        refresh.call(this, data);
      };
   
   
      /**
      * Chatbox initial refresh
      */
      context.chatbox.refresh(context.chatbox);
  };
}(jQuery));


Cordialmente,
pedxz.
tikky

tikky
Admineiro
Admineiro

Membro desde : 13/01/2017
Mensagens : 7816
Pontos : 9062

Ir para o topo Ir para baixo

Tópico resolvido Re: Proteção contra owner e XSS nas mensagens e chat

Mensagem por Aejis 08.01.19 16:57

Agradeço.

Pode fechar o tópico.
Aejis

Aejis
Novo Membro

Membro desde : 06/01/2019
Mensagens : 4
Pontos : 8

https://alex-fdf.forumeiros.com

Ir para o topo Ir para baixo

Tópico resolvido Re: Proteção contra owner e XSS nas mensagens e chat

Mensagem por Convidado 08.01.19 17:01

Tópico resolvido


Movido para "Questões resolvidas".
Anonymous

Convidado
Convidado


Ir para o topo Ir para baixo

Ver o tópico anterior Ver o tópico seguinte Ir para o topo

- Tópicos semelhantes

Permissões neste sub-fórum
Não podes responder a tópicos