Ir para conteúdo
Fórum Script Brasil
  • 0

Impedir Acesso De Script


CarlaAlexa

Pergunta

Boa tarde, o meu assunto é o seguinte, tenho um servidor de Chat em meu site e há alguns dias estão travando meu servidor, não sei se com outro servidor a conectar se com um Bot com CONEX.

Acontece que no meu servidor aparece apenas "ircx(depois numeros e letras que variam):CONEX"

e mais uma segunda mensagem que diz " /sockrite:(mais numeros e letras iguais às de cima) a espera excederia 16384 bytes (linha 151,freechat.mrc)

Preciso impedir que ele entre e bloqueie o servidor, PARTE do ficheiro é este, o que me parece ter que ser modificado para não entrar:

on *:SOCKLISTEN:local.2:{

var %sock $+(ircx.,$r(a,z),$r(1111,9999),$r(a,z),$r(1,999999),$r(A,Z),$r(11,99),$r(A,Z))

sockaccept %sock

if %prot == on {

if !%ipflood. [ $+ [ $sock(%sock).ip ] ] {

set -u40 %ipflood. [ $+ [ $sock(%sock).ip ] ] 1

}

elseif %ipflood. [ $+ [ $sock(%sock).ip ] ] > 5 {

sockclose %sock

halt

}

else {

inc %ipflood. [ $+ [ $sock(%sock).ip ] ] 1

}

}

}

alias offjz return $iif(r isin $1,1,$iif(j isin $1,3,$iif(z isin $1,2,0)))

on *:sockread:ircx.*: {

var %r

sockread %r

tokenize 32 %r

echo -s $bc.decode($sockname) : $bc.decode($1-)

if (CONEX == $1) {

var %n = 1, %room = $hget(0)

while (%n <= %room) {

if (($+($chr(37),$chr(35)) isin $hget(%n)) && (s !isincs $hget($hget(%n),modes)) && (p !isin $hget($hget(%n),modes))) {

sockwrite -tn $sockname l $hget(%n) $calc($sock($+(principal.*.,$hget(%n)),0) + $iif(r isin $hget($hget(%n),modes),1,0)) $hget($hget(%n),cat) $hget($hget(%n),lang) $offjz($hget($hget(%n),modes)) $hget($hget(%n),topic)

}

inc %n

}

sockwrite -n $sockname 0

}

if (bot == $1) {

sockwrite -n $sockname ok

var %a $+(principal.,$r(a,z),$r(1111,9999),$r(a,z),$r(1,999999),$r(A,Z),$r(11,99),$r(A,Z))

sockrename $sockname %a

hadd -m %a bot 1

hadd -m %a gate $+($r(1,999),$r(A,Z),$r(11,99),$r(A,Z),$r(111,999),$r(A,Z),$r(11,99),$r(A,Z),$r(11,99),@,$serv)

}

elseif AUTH GateKeeper I == $1-3 && :GKSSP* iswm $4 {

sockwrite -tn $sockname AUTH GateKeeper * $rand(111,999) $+ $rand(A,Z) $+ $rand(11,99) $+ $rand(A,Z) $+ $rand(111,999) $+ $rand(A,Z) $+ $rand(11,99) $+ $rand(A,Z) $+ $rand(11,99) $+ @GuestGate 0

}

elseif NICK == $1 {

sockwrite -tn $sockname $+(:,$serv) 001 Server :Bienvenue sur $serv

}

elseif FINDS == $1 {

if $hget($2) { sockwrite -tn $sockname $+(:,$serv) 613 Server : $+ %ip 6668 }

else { sockwrite -tn $sockname $+(:,$serv) 702 Server :Salle inexistante }

}

elseif CREATE == $1 && $+($chr(37),$chr(35),*) iswm $3 && $8 {

var %flood.limit 4

if !%createflood {

set -ul0 %createflood 1

}

elseif %createflood > %flood.limit {

sockclose $sockname

unset %createflood

halt

}

else {

inc %createflood 1

}

if $hget($3) { sockwrite -tn $sockname $+(:,$serv) 705 Server : $+ %ip 6668 | halt }

else {

if $checkroom($3) == oui && $len($3) > 2 && $len($3) < 70 {

hmake $3 10 | hadd $3 cat $2 | hadd $3 topic $remove($4,$chr(37)) | hadd $3 onjoin $5 | hadd $3 lang $6 | hadd $3 owner $8 | hadd $3 host $+($r(a,z),$r(1,999999),$r(A,Z),$r(11,99),$r(A,Z)) | hadd $3 modes +ntulc | hadd $3 limit 50

set $+($chr(37),create,$3) on

sockwrite -tn $sockname $+(:,$serv) 613 Server : $+ %ip 6668

}

else { sockwrite -tn $sockname $+(:,$serv) 405 Server :Unable to join }

}

}

}

on *:socklisten:local.1:{

var %sock $+(principal.,$r(a,z),$r(1111,9999),$r(a,z),$r(1,999999),$r(A,Z),$r(11,99),$r(A,Z))

sockaccept %sock

}

alias _isop if ((A == $hget($1,ui2)) || (S == $hget($1,ui2)) || (G == $hget($1,ui2))) return 1 | return 0

alias _fb sockwrite -n $sockname : $+ $hget($sname($sockname),ident) PRIVMSG $hget($sname($sockname),room) : $+ $chr(1) $+ ACTION $1- $+ $chr(1)

NOTA-> se eu colocar OFF onde está ON aqui --> ninguém entra: ---> on *:sockread:ircx.*: {

Agradecia muito a ajuda

Carla

Link para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

  • 0

Olá , para não utilizar outro tópico vou fazer aqui a minha duvida, espero que seja aqui tambem.

É o seguinte, qual o codigo aqui que faz funcionar o F2 ? E como posso fazer um Refresh ( actualizar a pagina ) logo que ela seja aberta? A Intenão era fazer uma repetição da tecla F2 umas 3 vezes, como faço ?

Aqui o script para me ajudarem:

; list

alias -l rlst if ($dialog(rlist)) { did -r rlist 2 | did -a rlist 2 0 baixando lista... } | sockclose ?list

alias -l _rm return $bc.decode($replace($right($1,-2),\b,$chr(32),\c,$chr(44)))

alias glist rlst | sockopen glist $$hget(ajx,srv $+ $1) 6667

on *:sockopen:glist: if ($sockerr) { echo -s * Error: $sock(glist).ip -> $sock(glist).wsmsg | halt } | _sw glist l | write -c rooms.txt

alias slist rlst | sockopen slist $bcsite 6667 | write -c rooms.txt

on *:sockopen:slist: if ($sockerr) halt | _sw slist CONEX

on *:sockread:?list: {

var %x | sockread %x | tokenize 32 %x

if (l == $1) write rooms.txt $2 - $+ $3-

if (0 == $1) { poe_la | sockclose ?list }

Link para o comentário
Compartilhar em outros sites

  • 0

bom antes de mais nada, esta linguagem é mIRC script, não php :P

e estes números significa que é um nome aleatório que teu servidor cria

usando: $+(ircx.,$r(a,z),$r(1111,9999),$r(a,z),$r(1,999999),$r(A,Z),$r(11,99),$r(A,Z))

o que significa que "algo" esta enviando dados ao servidor, porem, tudo que funciona pelo servidor, envia os dados ao servidor, sem isto ele não iria servir para nada, e no caso, usando CONEX, poderia ser outro comando, não creio que faria diferença, conclusão isto não é um script, e sim dados enviados ao servidor apenas, o erro vem de uma sobrecarga ;)

sugestões:

procure um programador de mIRC script, e peça ajuda sobre como resolver o teu problema, se quiser a minha fico a disposição, porem eu cobro... -_-

Link para o comentário
Compartilhar em outros sites

  • 0

ola isso e codigo source mIRC da base geral do clubechat server como já respoderam e bem os numeros ae e para criar socks aleatorios pois sabendo que se trata de un server un sock idem a outro seria uma catastrofre pois 2 ou mais receberiam mesma mensagem.... para parar o conex e facil copie o exemplo que coloco ae:

if $1 == CONEX {

;---------------------- a copiar -------------------

if (%ipsys. [ $+ [ $sock($sockname).ip ] ]) { sockwrite -tn $sockname Message: Connecting too rapidly | sockclose $sockname } else { set -u5 %ipc. [ $+ [ $sock($sockname).ip ] ] $gettok($sockname,2,$asc(.)) }

;---------------------- end ---------------------

............. resto to teu codigo....

..

...

..

sem mais conheço esse server de A a Z não digo como mas rsss da pra desconfiar ;)

saude :)

Link para o comentário
Compartilhar em outros sites

  • 0

ah e andei reparando seu script..

if (%ipsys. [ $+ [ $sock($sockname).ip ] ]) { sockwrite -tn $sockname Message: Connecting too rapidly | sockclose $sockname } else { set -u5 %ipc. [ $+ [ $sock($sockname).ip ] ] $gettok($sockname,2,$asc(.)) }

e se o valor que estiver no %ipsys. for o do ip dela?

por que pelo nome, ipsys = ip do sistema, creio que ela não vai consegui exibir o script.. :P

Link para o comentário
Compartilhar em outros sites

  • 0
Guest ClubeUser

oi

if (%ipsys. [ $+ [ $sock($sockname).ip ] ]) { sockwrite -tn $sockname Message: Connecting too rapidly | sockclose $sockname } else { set -u5 %ipsys. [ $+ [ $sock($sockname).ip ] ] $gettok($sockname,2,$asc(.)) }

isso dae cria a variavel %ipsys.XXX.XXX.XXX.XXX ou seje o ip de quem usa o commando /CONEX se o fizer 2 vezes seguidas en menos de 5 segundos dae o parametro em set "-u5" dara mensagem de erro :"Connecting too rapidly" creo que isso pra voce é chinês.... perdeu uma grande oportunidade en estar calado rsss enfim leu pelo menos do que se tratava antes de colocar essa bobagem ? o IP dela nada tem a ver para a variavel $sock($sockname).ip pois essa variavel é de quem se conecta não do server nem dela pra mais o IP server e guardado em %IP xxx.xxx.xxx.xxx sem mais bon ano a todos...

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.


  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...