Pular para o conteúdo principal

ChatGPT é confiável? Limites éticos e operacionais no uso de IA no trabalho

A Inteligência Artificial chegou definitivamente ao ambiente de trabalho. Ferramentas como o ChatGPT têm ganhado destaque não apenas pela capacidade impressionante de resolver problemas e gerar conteúdo, mas também por levantarem uma questão fundamental: até onde podemos confiar nessas tecnologias? Neste artigo, vamos analisar os limites éticos e operacionais no uso do ChatGPT, ajudando você a entender claramente quando a IA pode ajudar e quando deve ser usada com cautela . ChatGPT: amigo ou inimigo da produtividade? O ChatGPT é um modelo de linguagem avançado, treinado com uma quantidade imensa de dados para responder perguntas e gerar conteúdos úteis, coerentes e detalhados. Ele pode realizar desde tarefas simples, como escrever e-mails, até tarefas complexas, como sugerir códigos e otimizações técnicas. Mas, como toda tecnologia disruptiva, traz consigo alguns desafios e preocupações importantes. Onde o ChatGPT pode ajudar de verdade? Algumas aplicações práticas e seguras do Cha...

Cloudflare Turnstile com HTML e PHP

O Turnstile oferece aos visitantes do site experiências na web livres de frustração e sem CAPTCHA, com apenas um trecho simples de código gratuito. Além disso, o Turnstile detém o abuso e confirma se os visitantes são reais sem causar preocupações de privacidade de dados e sem as desagradáveis UX que os CAPTCHAs impõem aos usuários. E é gratuito.

Abaixo eu demonstro uma função simples para quem quer instalar / usar a alternativa de CAPTCHA da Cloudflare, o Turnstile numa página em PHP. Fiz isso no infoaqui.com.br.


Como ativar o serviço na Cloudflare

Antes de qualquer coisa, você precisa ativar o serviço dentro de uma conta na Cloudflare. É simples. Veja abaixo:

  1. Crie uma conta na Cloudflate (ou acese a sua);
  2. Navegue até a guia “Turnstile” na barra de navegação;
  3. Cadastre o domínio do seu site para obter a chaves necessárias: do site e a secreta.

Depois de tudo cadastrado dentro da Cloudflare, vamos aos código necessários.

Instalando o Turnstile na página HTML e validado com PHP

Copie o HTML abaixo e cole dentro do HEAD da sua página:

<script src="https://challenges.cloudflare.com/turnstile/v0/api.js" async defer></script>

Depois que o script for incorporado, você poderá usar a renderização implícita. Aqui, o HTML é verificado em busca de elementos que tenham uma classe cf-turnstile. Veja o exemplo de form:

<form action="/login" method="POST">  <div class="cf-turnstile" data-sitekey="Sua SiteKey"></div>  <input type="submit"></form>

Assim que um desafio for resolvido, um token é injetado em seu formulário, com o nome cf-turnstile-response. Esse token pode ser usado com o endpoint de siteverify para validar uma resposta de desafio. Um token só pode ser validado uma vez e um token não pode ser recuperado duas vezes. A validação pode ser feita no lado do servidor. Ai vem a função do PHP. No caso do infoaqui.com.br que foi desenvolvido em Laravel, montei o seguinte:

public static function testarCaptchaCloudflare($captcha){
        if(!empty($captcha)){
            $url = 'https://challenges.cloudflare.com/turnstile/v0/siteverify';
            $curl = curl_init();
            curl_setopt_array($curl, [
                CURLOPT_URL => $url,
                CURLOPT_HTTPHEADER => [
                    'Content-Type: application/json',
                ],
                CURLOPT_CUSTOMREQUEST => 'POST',
                CURLOPT_RETURNTRANSFER => true,
                CURLOPT_FOLLOWLOCATION => 1,
                CURLOPT_CONNECTTIMEOUT => 10,
                CURLOPT_TIMEOUT => 30,
                CURLOPT_POSTFIELDS => json_encode([
                    'secret' => 'Sua SecretKey',
                    'response' => $captcha
                ]),
            ]);
            $result = curl_exec($curl);
            $err = curl_error($curl);
            curl_close($curl);
            if ($json = json_decode($result)) {
                if ($json->success) {
                    return [
                        'status' => 1,
                    ];
                }
                return [
                    'status' => 0,
                    'turnstile_response' => $json,
                ];
            }
            return [
                'status' => 0,
                'error' => 'Unknown error occured'
            ];
        }else{
            return [
                'status' => 0,
                'error' => 'Token captcha is empty'
            ];
        }
     } 

Pronto! Depois de submeter o formulário de login com o captcha por método post, além dos campos do formulário, foi inserido também um campo cf-turnstile-response. No meu caso testei o retorno da seguinte forma:

$captchaCloudflare = $request->get('cf-turnstile-response');
if(static::testarCaptchaCloudflare($captchaCloudflare)['status'] == True)
{
......conteúdo caso o teste seja positivo......
}else{
......conteúdo caso o teste seja negativo...... 
}

Saiba mais sobre o Turnstile no blog da Cloudflare.

Postagens mais visitadas deste blog

Diferença entre banco de dados, instância, schema, tablespaces e etc.

Vamos a um pouco de teoria de banco de dados. Tenho certeza que será muito útil para os universitários. 🙂 No mundo da tecnologia e gerenciamento de informações, os bancos de dados desempenham um papel vital. Um banco de dados, ou base de dados, é um conjunto organizado de registros que oferece a capacidade de reorganização e extração de informações. Normalmente, os registros em um banco de dados são agrupados para servir a um propósito comum. A gestão de um banco de dados é tipicamente realizada por meio de um software conhecido como Sistema Gerenciador de Banco de Dados (SGBD). Exemplos notáveis de SGBDs incluem o Oracle, MySQL, SQL Server e PostgreSQL. É importante notar que, às vezes, o termo “banco de dados” é erroneamente usado como sinônimo de SGBD. No contexto atual, o modelo de dados mais amplamente adotado é o modelo relacional, no qual as informações são organizadas em tabelas compostas por linhas e colunas. Instâncias: A Máquina Cerebral do Banco de Dados Quando se trata de...

Diferença entre erro, falha e defeito - conceitos

Se você trabalha com desenvolvimento de software ou engenharia de qualidade, provavelmente já ouviu falar nos termos erro, falha e defeito. Embora esses termos sejam frequentemente usados ​​de forma intercambiável, é importante compreender suas diferenças e como eles se relacionam. Em termos simples, um erro é uma ação humana que produz um resultado incorreto ou inesperado. Um desenvolvedor pode cometer um erro ao escrever um código incorreto para uma determinada função, um testador pode cometer um erro ao não testar corretamente uma determinada funcionalidade, e um usuário pode cometer um erro ao inserir dados incorretos em um formulário. Uma falha, por sua vez, é a manifestação externa de um erro. É quando o produto não executa conforme o esperado. Por exemplo, se uma aplicação de pagamento online apresentar um erro de processamento de pagamento, isso pode ser considerado uma falha. As falhas podem ser detectadas pelos usuários ou por testadores durante o processo de teste. Por fim, ...

Como iniciar, parar e reiniciar o serviço MySQL no Linux

Recentemente fiz um post sobre a instalação do MySQL no Linux , agora vamos falar como verificar o status do serviço e como aplicar os comandos start, stop e restart. Coisas básicas para a manutenção. 1 . Como verificar o status do serviço É importante compreender que, dependendo da versão do Linux, o comando a ser usado pode variar. Em versões mais antigas, utilizamos o comando " service ";  já em versões mais recentes, o comando " systemctl ". Veja os exemplos abaixo: sudo systemctl status mysql ou sudo service mysql status Um retorno semelhante a esse mostra que o serviço está ativo. 2 . Como iniciar o serviço no Linux Novamente importante atentar para a distribuição do linux. Para o Ubuntu ou outras distribuições baseadas no Debian, você usará o comando systemctl, em outras provavelmente o service. Vamos aos exemplos: sudo systemctl start mysql ou sudo service mysql start Importante notar que o comando start pode não gerar output, por isso é importante verificar...

Contar caracteres no MySQL

Vamos fazer uso das funções da linguagem SQL para contar caracteres de um campo salvo em uma tabela. Ou seja, vamos selecionar diversos registros de uma tabela e contar os caracteres de um de seus campos. No MySQL temos várias funções para contar caracteres: LENGTH(cadeia) – comando também existente no Oracle Recebe uma cadeia , conta e retorna o número de caracteres. CHARACTER_LENGTH(cadeia)  Recebe também uma cadeia e retorna o número de caracteres contados. CHAR_LENGTH(cadeia) É um sinônimo de CHARACTER_LENGTH. Embora nem todas as versões de MySQL o tenham. A diferença entre LENGTH e CHARACTER_LENGTH é que em CHARACTER_LENGTH um caractere “multibyte” conta como um só caractere. Em LENGTH conta o número de bytes da cadeia. Assim, no caso de ter uma cadeia com 5 caracteres que ocupam 2 bytes cada um, LENGTH retornaria 10 e CHARACTER_LENGTH só 5. Por enquanto vamos utilizar CHARACTER_LENGTH, ela devolverá os resultados que esperamos obter, o número de caracteres da cadeia, independ...

Trabalhando com HASHBYTES no SQL Server

Hoje precisei criar uma função para gerar um Hash SHA2_512 dentro de um banco SQL Server 2016. Para quem não conhece ou não sabe, uma função hash é um algoritmo que mapeia dados de comprimento variável para dados de comprimento fixo. Os valores retornados por uma função hash são chamados valores hash, códigos hash, somas hash (hash sums), checksums ou simplesmente hashes. É muito utilizado para armazenar senhas… cria-se um hash da senha do usuário e o resultado é armazenado, não deixando no banco a senha original. Importante dizer: o hash não é uma criptografia. Ou seja: não há retorno. No caso da senha, por exemplo, será necessário fazer o comparativo pelo hash. Imagine um formulário de login, por exemplo. Quando ele for submetido pelo usuário, o sistema deverá gerar o hash code do que foi preenchido no campo de senha e comparar com o hash que está no banco. O SQL Server possui uma função nativa para retornar hash nos modelos mais utilizados (MD2 | MD4 | MD5 | SHA | SHA1 | SHA2_256 | ...