Siga-nos em...
Follow us on Twitter Follow us on Facebook Watch us on YouTube
Registro


HGIDC
Página 1 de 2 12 ÚltimoÚltimo
Resultados 1 a 10 de 11
  1. #1

    Avatar de Brutallus
    Data de Ingresso
    Jan 2010
    Localização
    Itapuranga
    Idade
    24
    Posts
    217
    Agradecido
    2
    Agradeceu
    2
    Peso da Avaliação
    10

    Padrão Name do campo de um formulário e proteção.

    E ae galera da IMP, estou com uma dúvida muito tosca, estava meio afastado do php mais tô voltando e desenferrujando, quero saber se o select pode repetir o nome em formulários diferentes.
    Ex:
    Form1
    Código PHP:
    <form id="moveCharacterForm" name="moveCharacterForm" method="post">
                         <
    select id="character" name="character" class="inputbox">
                        {
    #CHARACTERS_ACCOUNT}
                        
    </select>
                      </
    form
    Form2
    Código PHP:
    <form id="moveCharacterForm2" name="moveCharacterForm2" method="post">
                         <
    select id="character" name="character" class="inputbox">
                        {
    #CHARACTERS_ACCOUNT}
                        
    </select>
                      </
    form
    Gostaria que saber se os 2 <select id="character" name="character" class="inputbox"> podem ter o mesmo nome se estiverem em formulários diferentes.

    E sobre proteção, o que hoje em dia o programador tem que fazer para ter seu site protegido?
    Gostaria que vocês me dessem exemplos de ataques ao sistema, como funciona tipo o cara injeta no seu site um script o que é? pq assim eu posso ter consiencia do que estou programando e fica mais facil de eu bloquiar esses ataques!
    Valeu gente. é só isso por enquanto ^^!

  2. #2

    Avatar de louis
    Data de Ingresso
    Jan 2012
    Localização
    Sorocaba-SP
    Idade
    32
    Posts
    122
    Agradecido
    16
    Agradeceu
    8
    Peso da Avaliação
    7

    Padrão

    em formularios diferentes podem, até pq você só vai submeter um deles.

    sobre segurança o maior problema é o inject, use isso no config.php e dificilmente terá problemas:

    [Somente usuários registrados podem vem os links. ]

    T+

  3. #3

    Avatar de Brutallus
    Data de Ingresso
    Jan 2010
    Localização
    Itapuranga
    Idade
    24
    Posts
    217
    Agradecido
    2
    Agradeceu
    2
    Peso da Avaliação
    10

    Padrão

    Louis, valeu por responder a dúvida sobre os formularios.
    Agora sobre o anti-inject eu gostaria que fazer o meu proprio script por isso gostaria de aprender e não a pegar já a source pronta.
    Se puder me esclarecer sobre os modos de proteção ficarei grato.

  4. #4



    Avatar de Erick-Master
    Data de Ingresso
    Jul 2010
    Localização
    Lorencia :D
    Posts
    401
    Agradecido
    428
    Agradeceu
    152
    Peso da Avaliação
    16

    Padrão

    É simples, você só não pode deixar que o caracter ' seja inserido inteiro na string.
    No caso, o Anti-Inject do Luis (semelhante ao meu :P), ele da um replace duplicando o caracter '

    Exemplo, se a query é assim: SELECT * FROM tabela WHERE Login = '{$login}'
    Se eu digito aa' DROP TABLE tabela
    Isso será SQL Inject, o que o script faz, vai deixar o $login assim: aa'' DROP TABLE tabela
    No caso, ele vai adicionar mais aspas tornando assim um aspas dupla, ou seja, inserindo a aspa que eu coloquei para da inject na string.
    A tal query de inject passa a ser uma string qualquer...

    Muitas pessoas bloqueiam ou removem os caracteres.
    Exemplo:

    Código PHP:
    <?php

    // -- Exemplo de remover os chars
    function escape($string)
    {
        
    $chars = array("'""\""";""--");
        return 
    str_ireplace($charsNULL$string);
    }

    foreach(
    $_POST as $key => $value)
    {
        
    $_POST[$key] = escape($value);
    }
    foreach(
    $_GET as $lkey => $value)
    {
        
    $_GET[$key] = escape($value);
    }
    foreach(
    $_COOKIE as $key => $value)
    {
        
    $_COOKIE[$key] = escape($value);
    }

    // -- Exemplo de bloquea-los

    function blockChars($string)
    {
        
    $block FALSE;

        if(
    substr_count($string"'") > 0$block TRUE;
        if(
    substr_count($string"\"") > 0$block TRUE;
        if(
    substr_count($string";") > 0$block TRUE;
        if(
    substr_count($string"--") > 0$block TRUE;

        if(
    $block) exit("<script>window.alert('Caracteres inválidos');</script>");
    }

    foreach(
    $_POST as value)
    {
        
    blockChars($value);
    }
    foreach(
    $_GET as $value)
    {
        
    blockChars($value);
    }
    foreach(
    $_COOKIE as $value)
    {
        
    blockChars($value);
    }
    Dois exemplos totalmente ridiculos, você não precisa bloquear caracteres, e o anti-inject é somente com o caractere ', o ; " e -- não servem pra nada se o ' estiver protegido.
    Basta dar str_replace("'", "''", $string) que já basta.

    Sobre os forms, o Luis está certo, pode possuir o mesmo nome sendo em forms diferentes.

    Att,
    Erick-Master - CTM Team Softwares

  5. #5

    Avatar de Brutallus
    Data de Ingresso
    Jan 2010
    Localização
    Itapuranga
    Idade
    24
    Posts
    217
    Agradecido
    2
    Agradeceu
    2
    Peso da Avaliação
    10

    Padrão

    Acho que entendi...
    Tipo no caso então quando o cara da o inject com o "aa' DROP TABLE tabela" a query passa a ser executada dessa seguinte forma -> SELECT * FROM tabela WHERE Login = 'aa' DROP TABLE tabela' ?
    E no caso do inject ele só funciona se for com ,' se eu substituir o ' aspas comum por " aspas dupla o inject já não ira funcionar e o inject passa a se tornar um string comum?

    Outra coisa existe outro perigo que deva ser bloquiado em um site?
    E como eu faço para corrigir os acentos da minha web?
    Exe: inseri uma notica de manutenção, olhe como ficou na database "MANUTENÇÃO"

  6. #6



    Avatar de Erick-Master
    Data de Ingresso
    Jul 2010
    Localização
    Lorencia :D
    Posts
    401
    Agradecido
    428
    Agradeceu
    152
    Peso da Avaliação
    16

    Padrão

    1 - Você entendeu o principio do SQL Inject, sobre converter as aspas simples para aspas duplas, é uma auternativa, mas ainda sim recomendo duplica-la.
    2 - Não tem como usar aspas duplas em Query, string em query é SEMPRE com aspas simples
    3 - htmlentities($string, "UTF-8", ENT_QUOTES), sempre usar essa função ANTES de enviar o texto para a DB.

    Se seu site aceitar HTML, então na hora de ler o texto, precisa usar a função htmlspecialchars_decode($string, "UTF-8", ENT_NOQUOTES)

    Att,
    Erick-Master - CTM Team Softwares

  7. #7

    Avatar de Brutallus
    Data de Ingresso
    Jan 2010
    Localização
    Itapuranga
    Idade
    24
    Posts
    217
    Agradecido
    2
    Agradeceu
    2
    Peso da Avaliação
    10

    Padrão

    Só para ver se eu entendi..
    Então em um formulario onde exite o campo de text eu usaria um script mais ou menos desse geito:

    Código PHP:
    class security
    {
    function 
    protection($string)
    {
    str_repleace("'","''",$string);
    return 
    $string;
    }
    }


    $text "aa' DROP TABLE tabela";
    $teste = new security();
    $updatemysql_query("UPDATE TABLE SET TEXT='{$teste->protection($text)}'"); 

  8. #8



    Avatar de Erick-Master
    Data de Ingresso
    Jul 2010
    Localização
    Lorencia :D
    Posts
    401
    Agradecido
    428
    Agradeceu
    152
    Peso da Avaliação
    16

    Padrão

    Sim, mas o replace tem que ser no return.

  9. #9

    Avatar de Brutallus
    Data de Ingresso
    Jan 2010
    Localização
    Itapuranga
    Idade
    24
    Posts
    217
    Agradecido
    2
    Agradeceu
    2
    Peso da Avaliação
    10

    Padrão

    Muito obrigado pela ajuda. Pode fechar o topico!

  10. #10

    Avatar de ronyelias
    Data de Ingresso
    May 2010
    Localização
    na minha casa
    Posts
    246
    Agradecido
    5
    Agradeceu
    4
    Peso da Avaliação
    10

    Padrão

    Estou programando um site aqui e esta sem proteção nenhuma, e ja comecei a aprender sobre proteção de ataques, vou estar testando aqui e ver como funciona isso.


    EDIT: Andei pesquisando e vi que este método das aspas duplas é uma gambiarra, pois porém ao inserir valores no banco de dados com aspas duplas e o campo estiver definido como inteiro (somente numeros) ira ter erros.
    Última edição por ronyelias; 26-01-2012 às 11:52 PM.

 

 
Página 1 de 2 12 ÚltimoÚltimo

Informações de Tópico

Usuários Navegando neste Tópico

Há 1 usuários navegando neste tópico. (0 registrados e 1 visitantes)

Tópicos Similares

  1. |Dúvida| Desativar campo da Web Daldegan 2.5.x Liberada Fre
    Por ijacksouza no fórum Dúvidas
    Respostas: 1
    Último Post: 06-01-2016, 11:12 PM
  2. |Dúvida| Min/Max caracteres em um campo de cadastro.
    Por TuirzinOne no fórum Dúvidas|Pedidos
    Respostas: 11
    Último Post: 23-03-2013, 04:33 AM
  3. |Download| 553 - Chegada no campo de batalha
    Por Prøjë¢T no fórum Naruto
    Respostas: 0
    Último Post: 06-09-2011, 12:00 AM
  4. |Tutorial| Formulário em md5
    Por mend3 no fórum PHP
    Respostas: 2
    Último Post: 24-10-2009, 12:39 AM

Marcadores

Permissões de Postagem

  • Você não pode iniciar novos tópicos
  • Você não pode enviar respostas
  • Você não pode enviar anexos
  • Você não pode editar suas mensagens
  •