Captura de tela do formulário para prova legal de clicar em uma das caixas de seleção?

45

Recebemos uma solicitação de um de nossos clientes e, como nunca a encontrei antes, nem sei por onde começar a procurar.

Nosso cliente é uma rede de faculdades e estamos construindo um site para eles. Nesse site, entre outras coisas, haverá um formulário que os candidatos em potencial podem preencher para obter mais informações sobre os estudos em uma das faculdades. Depois que um usuário preenche este formulário - incluindo fornecer seu e-mail e / ou número de telefone -, a faculdade relevante entra em contato com as informações relevantes.

Agora, por razões legais, o cliente está solicitando que este formulário também tenha uma caixa de seleção que o candidato em potencial verifica para indicar que concorda em receber material promocional dessas faculdades. Claro que isso não é problema. Mas aqui vem a parte estranha da solicitação:

Os detalhes de cada formulário preenchido devem ser salvos de forma confiável. Aparentemente, salvar os valores do formulário em um banco de dados - uma coluna indicando se o usuário concordou ou não - não é suficiente, porque um banco de dados pode ser alterado após os usuários enviarem o formulário. Nosso cliente afirma que outros portais da faculdade criam uma captura de tela do formulário preenchido e o salvam em algum lugar de uma pasta dedicada, de uma maneira que é facilmente encontrada, como atribuir ao arquivo um nome que inclua o nome do usuário e a data e tempo.

Minha pergunta é a seguinte: você já ouviu falar em usar capturas de tela como um método para provar que um usuário realmente preencheu um formulário? Existem outros métodos considerados confiáveis?

Lea Cohen
fonte
96
As capturas de tela também podem ser modificadas - especialmente se armazenadas em disco em algum lugar.
ChrisF
41
Deixe-me adivinhar: é um professor de ciência da computação que teve essa ideia. Algumas dessas pessoas são fantásticas. Não sei como eles fazem isso, mas as idéias que surgem são muitas vezes tão surreais como se estivessem em ácido.
quer
32
Aguarde - eles estão salvando o endereço de e-mail e outras informações pessoais no banco de dados, mas o "problema de segurança" com o qual eles estão preocupados é se esse usuário recebe, por engano, emails promocionais?
Wonko the Sane
11
"em uma pasta que não é facilmente encontrada" - aah, segurança através da obscuridade! Isso é muito mais seguro do que um banco de dados mantido em um servidor seguro, exigindo credenciais de login, etc., para chegar a ... #
187 Dave Dave
19
Ainda melhor do que uma captura de tela seria se você pudesse capturar um videoclipe da webcam do usuário, assentindo e dando um grande sinal de 'polegar para cima'. Agora isso seria a prova!
GrandmasterB

Respostas:

74

Eu nunca ouvi falar de algo assim, e seria ridículo, porque uma captura de tela falsa pode ser produzida com a mesma facilidade que um valor falso em um banco de dados.

EDIT Além disso, quero dizer, WTF? como você não pode obter uma captura de tela da tela de alguém pela web, obviamente você terá que reconstruir a página no servidor e fazer uma captura de tela e, em seguida, quem pode dizer que você não a medicou?

Mike Nakis
fonte
1
+1 Bom ponto, eu não considerava que tecnicamente fosse possível executar um navegador programático para renderizar o HTML e, em seguida, enviar a página para um documento PDF criando um driver de impressão.
maple_shaft
como de fato é feito regularmente. Seria muito fácil, em princípio, você poderia enviar os mesmos dados para 2 modelos xsl: fo, um criando html e outro pdf (eu já fiz isso no passado).
jwenting
1
@jwenting Independentemente de como MikeNakis já apontou, isso ainda pode ser adulterado. Você precisaria usar PDFs assinados eletronicamente ou criar um hash da imagem para usá-lo para validar que a captura de tela não foi violada.
maple_shaft
24
"tão facilmente"? As capturas de tela falsas são muito mais fáceis do que invadir um banco de dados!
Jesvin Jose
4
Fazemos isso em alguns dos aplicativos que eu construo. Tecnicamente, não é uma "captura de tela", mas, para fins de auditoria, precisamos "reconstruir" a sessão como era na época. Conseguimos isso salvando os dados do formulário enviado e reconstruindo-os posteriormente. Mas, tendo dito isso, isso acabou de ser salvo em um banco de dados e a "captura de tela" é apenas uma reconstrução dos dados que salvamos. Parece bonito para as pessoas que querem.
Deco
35

Eu sei que estou começando esta resposta com uma pergunta, mas tenho um ponto:

Sem questionar o suposto absurdo da solicitação, se esse é um aplicativo Web típico baseado em navegador HTTP, como capturar programaticamente uma captura de tela e enviá-la ao servidor?

Espero que isso seja impossível, pois representaria uma séria preocupação com a segurança e a privacidade do navegador.

Agora imagine se o número do cartão de crédito de alguém também estivesse na tela no momento da captura da captura de tela. Agora você captura inadvertidamente as informações do cartão de crédito e seu sistema agora deve ser compatível com PCI. Essa é outra avenida de preocupação.

A única maneira de fazer isso provavelmente seria usar um plug-in de navegador de terceiros como Flash, Silverlight, Java Applets ou um controle ActiveX com privilégios elevados de sistema. O componente precisaria ser assinado e o usuário precisaria concordar que o componente tivesse acesso para executar o código em sua máquina.

Existem muitos buracos nesse plano e duvido seriamente que outras faculdades implementem algo semelhante. Certamente nunca ouvi falar disso na minha carreira profissional, pelo menos não com um aplicativo da web.

EDITAR:

Pensei em outra opção que provavelmente refletiria muito mais o que acho que seu cliente está realmente pedindo.

Eu tinha um aplicativo que fiz para um cliente em que o cliente tinha que concordar e assinar um documento da NDA para obter acesso ao aplicativo. Consegui isso através de um documento PDF assinável. Você pode ter um campo de assinatura em um documento PDF que, usando um componente USB caneta + teclado ou clicando nele para confirmar, para fins legais, será tão bom quanto se você tivesse assinado fisicamente o documento manualmente.

É chamado de assinatura eletrônica e eles se sustentam no tribunal.

O documento PDF após a assinatura é criptografado e um hash é armazenado junto com ele, para verificar se o documento NÃO foi violado após a assinatura. Os leitores de PDF modernos, como a Adobe, podem realmente transmitir um documento assinado para um servidor, onde você pode armazená-lo em um sistema de gerenciamento de documentos ou banco de dados para garantir a segurança.

A qualquer momento, os usuários administradores podem recuperar um desses documentos e imprimi-los.

Isso pode ser mais parecido com o que seu cliente realmente precisa, mas teve um tempo ruim para se explicar adequadamente.

maple_shaft
fonte
1
1 para mencionar que este é tecnicamente possível, mas exigiria um plug-in
bunglestink
10
Então, o que impede você de substituir o PDF por um que você assinou? Até onde eu sei, não existe uma infraestrutura robusta de chave pública para lidar com a identidade dos indivíduos.
Random832
1
@ Random832 Xeque-mate meu amigo, você me pegou! Eu acho que não há uma resposta 100% segura. Qualquer sistema pode ser comprometido.
maple_shaft
3
Isso certamente não exigiria um plug-in; observe que as mais recentes ferramentas de feedback do Google (no Google Plus e no Youtube) realmente fazem essa "captura de tela". Você pode facilmente enviar todo o HTML em uma página atual via JAvascript e usar a folha de estilos adequada para reconstruir a aparência de uma imagem. Claro que isso é absurdo, porque você pode simplesmente enviar o valor da caixa de seleção.
precisa
Eu escrevi um widget que captura os movimentos do mouse em um elemento CANVAS e serializa o tempo capturado, as coordenadas X, Y voltam ao servidor. Não sei ao certo qual é o status legal de uma "assinatura" (ela pode ser alterada e é fácil de copiar), mas se essa é a única coisa que eles "assinam" no sistema, seria difícil explicar como você obteve esses dados se eles não consentiram. (Não sei o que acontece se o irmão mais novo assinar "pizza", mas o PDF sofrerá o mesmo problema).
Psd
27

Eu acho que a verdadeira pergunta seria: a pessoa cujo nome aparece no formulário realmente preencheu o formulário?

Em outras palavras, se alguém acessar o site e digitar o nome "Bill Gates" e clicar na caixa "está tudo bem em me enviar um email", como uma captura de tela provaria ser o verdadeiro Bill Gates?

Eles consideraram fazer o que muitos sites fazem e enviar um e-mail de verificação com um link exclusivo no qual alguém precisa clicar para confirmar? Dessa forma, pelo menos você tem um registro de que tem confirmação de alguém com acesso a essa conta de email.

JonnyBoats
fonte
4
Exatamente. E-mail de verificação para garantir que a pessoa que os solicita tenha controle do endereço de e-mail em questão. Eu também acrescentaria que, em vez de ter um registro legal de pessoas solicitadas materiais promocionais, você é apenas compatível com a Lei CAN SPAM e facilita muito a inscrição no material promocional. (Cada e-mail que envia material promocional mesmo que a sua por um terceiro tem um link para unsubscribe a todas as listas que você colocá-los.)
dr jimbob
20

Não tem isso

Essa discussão precisa começar com o entendimento de que não há como provar absolutamente que a pessoa concordou. Isso é verdade mesmo no mundo físico. Mesmo se você gravar um vídeo com a pessoa que assina fisicamente um formulário e coloca uma gota de sangue no formulário, eles podem dizer que o vídeo foi falsificado, o sangue foi retirado dela sem o conhecimento deles e a assinatura foi falsificada. Mas a prova absoluta não é necessária; apenas uma quantidade razoável de evidências.

No mundo digital, qualquer dado - texto, imagem, dados em um banco de dados ou e-mail - pode ser forjado. A coisa mais próxima da prova que podemos ter é que o usuário criptografe algo usando uma chave privada e mostre que sua chave pública será descriptografada. No entanto, atualmente isso está além da capacidade da maioria dos usuários e eles ainda podem dizer que sua chave privada foi roubada.

O melhor que podemos fazer é:

  • Consiga algo que seria difícil (embora não impossível) de falsificar
  • Concorda que, legalmente, essa evidência é suficiente
  • Facilitar o cancelamento da inscrição do usuário

Salvar uma imagem em vez de texto não adiciona nada em termos de prova; tudo o que faz é tornar o processo mais lento e mais caro.

Assinaturas eletrônicas

No meu trabalho, temos um aplicativo em que os usuários assinam uma declaração. Legalmente, as jurisdições em que operamos aprovaram leis dizendo que um usuário digitando seu endereço de email em um formulário pode contar como uma assinatura eletrônica. Já verificamos que eles têm acesso ao endereço enviando um link no qual devem clicar. Isso não é prova absoluta, mas foi considerado bom o suficiente para nossos propósitos.

Quaisquer que sejam as informações capturadas, sugiro que você também capture um registro de data e hora , para que você possa dizer "você concordou nessa data e hora exata". Não tenho certeza se isso tem alguma relevância legal, mas parece mais convincente para mim, porque oferece mais oportunidade para o usuário provar o contrário ("Tenho provas de que não estava em um computador na época", por exemplo )

Enlouquecendo com isso

Algumas coisas que você pode fazer que podem ser consideradas evidências:

  • Capture carimbo de data e hora, IP, navegador etc. para poder afirmar as circunstâncias da assinatura
  • Exigir verificação de endereço de email
  • Exigir que o usuário digite sua senha no momento da assinatura
  • Providencie a execução de um serviço da Web de terceiros somente para gravação que receberá, no momento em que o usuário assinar, um HTTPS POST do seu aplicativo com as informações da assinatura. Se o terceiro puder testemunhar que seu serviço é somente gravação, que recebeu o registro naquele momento e sua cópia é idêntica, você pode argumentar que não modificou os dados desde então.
  • Envie um e-mail ao usuário naquele momento dizendo "obrigado por se inscrever, veja como cancelar a inscrição". O provedor de email ou o seu poderá mostrar que o email foi enviado logo após a assinatura do usuário.

IANAL

Por favor, não tome nada disso como aconselhamento jurídico.

Nathan Long
fonte
Ótima resposta ... mas ainda assim os endereços de e-mail como assinaturas eletrônicas também foram legalmente contestados. Você está certo, porém, não existe uma maneira absolutamente comprovada. Apenas diferentes tons de mais difícil. O sistema jurídico trabalha com dúvidas razoáveis. A maioria das pessoas concorda que o trabalho de forjar um vídeo, roubar sangue e forjar uma assinatura não é uma possibilidade razoável. Isso poderia acontecer? Sim, é claro, mas certamente é altamente improvável que alguém tenha esse problema.
maple_shaft
1
"... e eles ainda poderiam dizer que sua chave pública foi roubada". não deveria ler "... e eles ainda poderiam dizer que sua chave privada foi roubada". A chave pública roubada não apresenta problemas de segurança em uma PKI bem projetada.
Lie Ryan
capturing a timestampé apenas inútil. Atualmente, é razoavelmente fácil para o usuário comum criar um navegador ou automação de desktop para agendar o preenchimento de formulários em algum momento futuro.
Lie Ryan
10

Outra opção seria registrar a postagem HTTP bruta do cliente. Isso teria seu IP, de onde eles vieram, qual navegador etc., sem a necessidade de uma captura de tela. Em seguida, você pode fazer isso em uma tabela de inserção apenas em formato bruto ou em um arquivo de log simples e simples ...

Só estou tentando pensar em outras opções, porque eu tenho muitas solicitações ridículas como essa com muito mais frequência do que gostaria ...

bunglestink
fonte
Hmm, sim, mas esse log está no mesmo banco de dados que eles estão preocupados em serem adulterados. Veja a edição na minha resposta: documentos PDF assinados eletronicamente são a única maneira de garantir que o documento não seja violado.
maple_shaft
1
@ maple_shaft: a idéia básica de adicionar segurança extra ao banco de dados seria a permissão "inserir apenas" para todos os usuários, exceto um administrador. Esse log seria um acréscimo às atividades regulares do banco de dados e só seria usado para verificação quando necessário.
bunglestink
1
@ JonnyBoats: Você está tecnicamente correto sobre HTTPS, embora uma vez recebido no nível do aplicativo, você tenha o mesmo texto bruto sendo registrado.
bunglestink
1
"documentos PDF assinados eletronicamente" ou qualquer coisa assinada eletronicamente "são a única maneira de garantir que o documento não seja violado", exceto por alguém que possua a chave com a qual será assinado.
Random832
1
@ Random832: é possível se a chave privada do documento for fornecida pelo usuário, IMO é um exagero para uma caixa de seleção indicando o acordo para receber materiais promocionais.
Lie Ryan
8

Uma captura de tela é facilmente fabricada, caso você seja tão inclinado. Assim como qualquer tipo de hash, registro de data e hora, etc., sem uma base criptográfica. Presume-se que exista algum requisito regulamentar rigoroso para que a faculdade possa provar que obteve consentimento positivo antes de enviar material de marketing para as pessoas ou trocar suas informações com terceiros.

A única maneira confiável de fazer isso é exigindo uma assinatura criptográfica do usuário. Por exemplo, veja como o site http://launchpad.net solicita que você assine criptograficamente o Código de Conduta do Ubuntu.

Isso só tem força de lei nas jurisdições em que uma assinatura criptográfica pode ser usada em um documento legal, mas, ao assinar um trecho de texto específico, o usuário pode fornecer uma prova de seu consentimento que é posteriormente verificável. Seria praticamente impossível para a faculdade forjar uma assinatura correta a partir da mesma chave pública.

Observe que ainda é trivial para a faculdade atualizar seu banco de dados e, portanto, inverter o campo de consentimento, e também substituir a chave pública por outra pela qual eles conhecem a chave privada e gerar uma assinatura válida para essa chave.

Portanto, sem que terceiros assinem chaves para atestar que pertencem a um indivíduo em particular, tudo isso é possível que o usuário possa verificar se a faculdade forjou ou não suas configurações de privacidade - sem a assinatura de terceiros, é sua palavra contra a faculdade.

Se você exigir ainda que toda a propriedade da chave seja verificada e a chave assinada por um ou mais terceiros confiáveis, a faculdade não poderá forjar assinaturas aparentemente válidas sem muito mais exposição (elas teriam que enganar ou cooptar a terceiros confiáveis ​​para que suas chaves falsas sejam assinadas). A dificuldade desse ataque aumentaria com o número de assinaturas necessárias de terceiros, mas, como observa outro pôster, não é impossível.

Então, para resumir:

  • O usuário deve possuir ou gerar um par de chaves pública / privada
  • O usuário deve obter uma assinatura para sua chave pública de um ou mais terceiros confiáveis
  • O usuário deve carregar sua chave pública, pelo menos na faculdade e, de preferência, em um repositório de chaves de terceiros
  • O usuário deve assinar um texto simples conhecido e fornecer a assinatura como prova de que consentiu em compartilhar seus dados privados

Problemas práticos:

  • Poucas pessoas entendem assinaturas criptográficas
  • O custo da certificação de terceiros pode ser caro
  • Parece muito trabalho para proteger uma caixa de seleção de lixo eletrônico em uma página de download do prospecto da faculdade
Adrian
fonte
8

Eu começaria lendo assinaturas eletrônicas para o país / estado do cliente, com o foco de descobrir quais métodos e requisitos são juridicamente vinculativos. Tenho certeza de que nenhum país ou estado em sã consciência exigiria uma captura de tela como o único método de prova para uma assinatura eletrônica vinculativa.

Por exemplo, nos EUA, 47 estados aceitaram a Lei Uniforme de Transações Eletrônicas , que se aplica a "assuntos governamentais" entre outras coisas e, portanto, provavelmente se aplicaria aos requisitos da faculdade. Possui as seguintes partes que podem ajudar:

..

  • Assinatura eletrônica - significa um som, símbolo ou processo eletrônico anexado ou logicamente associado a um registro e executado ou adotado por uma pessoa com a intenção de assinar o registro.

..

  • A Seção 7 reconhece legalmente assinaturas, registros e contratos eletrônicos
    • (a) Um registro ou assinatura não pode ser negado efeito legal ou exequibilidade apenas porque está em formato eletrônico.
    • (b) Um contrato não pode ter efeito legal ou exequibilidade legal unicamente porque um registro eletrônico foi usado em sua formação.
    • (c) Se uma lei exige que um registro seja escrito, um registro eletrônico a satisfaz.
    • (d) Se uma lei exige uma assinatura, uma assinatura eletrônica a satisfaz.

..

Depois de conhecer as leis, eu estimaria o custo do melhor método de assinatura eletrônica versus o custo do método de captura de tela.

Por fim, discutiria com eles minhas descobertas. Primeiro, eu explicaria a eles a melhor opção versus a opção proposta. Em seguida, explicaria a eles a quantidade de tempo que isso acrescentaria ao projeto. Por fim, se eu estivesse em um local para fazer isso, diria a eles que esse "recurso" adicionaria x dólares à conta final. Eu teria certeza de usar o custo adicional para mim como justificativa para o custo adicional para eles.

Se eles ainda não se mexessem, eu veria se eles têm um supervisor com alguma sanidade com a qual eu poderia ter a mesma reunião.

* Não sou advogado, por isso, procure aconselhamento jurídico se tiver dúvidas sobre alguma coisa.

Briguy37
fonte
6

Sendo esta uma questão legal, é claro que uma resposta real dependerá das leis nacionais e possivelmente até locais e das circunstâncias exatas. Então, obviamente, uma resposta real só pode vir de um advogado.

No entanto, no que diz respeito ao meu conhecimento jurídico (limitado), não vejo razão para supor que uma captura de tela seja considerada uma evidência de qualquer coisa, pois é obviamente muito fácil de falsificar.

Seu melhor curso de ação é provavelmente explicar ao seu cliente que este é essencialmente um problema jurídico e que é necessária a ajuda de um advogado. Em seguida, discuta com eles se eles querem que você discuta com um advogado ou se eles querem fazer isso sozinhos.

Para obter uma solução viável, convém discutir você mesmo (se o cliente concordar). Se você não quer esse incômodo (ou teme que eles não estejam dispostos a pagar por isso), deixe-o fazer.

sleske
fonte
6
Se o OP seguir esse caminho, sugiro uma abordagem intermediária, explique ao cliente que eles devem discuti-lo com um advogado, mas que o OP gostaria de se envolver nessas discussões, se possível. Dessa forma, a despesa é diretamente sobre o cliente e há menos risco de o cliente interpretar mal algo que o advogado diz ao passar essas informações para o OP.
Kevin D
5

Se você deseja validar se um documento permanece inalterado (registro do banco de dados, qualquer que seja), a "melhor prática" é assim:

  • Serialize os dados de maneira reproduzível, incluindo quaisquer campos que possam ser controversos (por exemplo, endereço de e-mail, se uma caixa está marcada).
  • Pegue o hash desse registro (por exemplo, sha1)
  • Use a chave pública para um terceiro confiável (ou seja, um terceiro desinteressado) para criptografar esse hash
  • Publique os dados de forma pública para estabelecer a data em que existiam, por exemplo, um grupo de notícias.
  • Para validar, o terceiro pode descriptografar o hash e compará-lo com o valor atual do hash.

Isso foi usado para garantir que os registros do seguro não fossem violados; no entanto, o "terceiro confiável" ao qual pagamos uma certa quantia em dinheiro promulgou os hashes à medida que foram assinados de volta para nós mesmos e vários outros clientes; portanto, havia vários guardiões de registros que poderiam ser intimados a obter provas.

Isso é claramente um fardo ridículo para algo como validar um campo booleano. Mas, se você mostrar ao cliente as despesas envolvidas, ele provavelmente deixará de ser burro.

BRPocock
fonte
4

Embora a solicitação em si seja absurda e você não possa ter uma prova legal razoavelmente feita de que uma pessoa A marcou a caixa de seleção ao preencher um formulário, há uma pergunta na sua pergunta que pode ser realmente respondida:

[Como garantir que os dados não sejam alterados posteriormente, enquanto] um banco de dados pode ser alterado após os usuários enviarem o formulário?

Isso, na verdade, pode ser mais fácil de fazer tecnicamente.

1. Mantenha uma prova de que os dados não foram alterados

Enviar um e-mail para si mesmo (para uma caixa de correio dedicada) com os valores realmente enviados pelo usuário é fácil (bem, pode ser, dependendo da configuração do servidor, do limite, das chances de ser filtrado como spam, o número de e-mails enviados por segundo etc.) e é suficiente para mostrar que os dados não foram alterados após o envio . Por exemplo, a menos que eu tenha acesso irrestrito aos servidores do Google , tenho certeza de que todos ficarão convencidos de que não posso alterar o conteúdo dos e-mails que enviei para o meu endereço do GMail.

2. Mantenha uma prova de que os dados estão corretos

As chances são de que o cliente não ficará satisfeito, porque mesmo se você tiver uma prova de que os dados não foram alterados posteriormente, como podemos ter certeza de que os dados não foram modificados entre o envio do formulário e o envio de informações por e-mail (e se comprometer com o banco de dados)? Nesse caso, o próximo passo é:

  1. Remova a caixa de seleção,
  2. Marque qualquer pessoa que preencheu o formulário como não desejando receber material promocional de spam da empresa de seus clientes,
  3. Indique aos visitantes que eles devem enviar um e-mail (com um título predefinido e um corpo vazio) para a caixa de correio dedicada para receber as ofertas comerciais de spam .

Seus e-mails podem ser processados ​​automaticamente e mantidos como prova.

3. Mantenha uma prova de que os dados são autênticos

Agora que você tem uma prova de que a pessoa que usa o endereço de e-mail especificado realmente deseja receber o spam, o cliente ainda pode estar insatisfeito (o que geralmente acontece com clientes que têm solicitações malucas). E se alguém invadisse a caixa de correio de outra pessoa apenas para registrar o hackee para receber seu spam?

Nesse nível de loucura, você ainda pode responder tecnicamente aos requisitos. Agora, em vez de enviar um email opt-in, o usuário do site precisa:

  1. Envie um e-mail com uma cópia do documento de identidade / passaporte e uma carta com uma assinatura, dizendo que essa pessoa realmente deseja receber o spam.

  2. Valide o endereço de email através de um código secreto que será enviado de volta.

Mas antes de fazer isso, convença o cliente a implementar o que descrevi na parte 2 e testá-lo. O cliente verá que, após um mês ou dois, ninguém nunca envia nenhum e-mail de aceitação e esquece com prazer as provas legais e os dados alterados no banco de dados.

Arseni Mourzenko
fonte
Seu passo 2 não prova nada. Para marcar as pessoas como indispostas para receber spam, você está armazenando essa "marca" no mesmo banco de dados com o qual o cliente está preocupado em ser adulterado. Manter um hash de um conjunto de dados, no entanto, garante que, se alguém mexer nos dados ou no próprio hash, a comparação dos dados com o hash resultaria em falha no hash e na prova de que os dados foram corrompidos ou adulterados.
maple_shaft
@maple_shaft, o que é essencial na parte 2 em geral não é o que está armazenado no banco de dados, mas apenas a recepção do email de inscrição do usuário do site. Os dados no banco de dados não importam.
Arseni Mourzenko
2
O passo 1 é bom. Fácil, simples, eficaz.
Offirmo
@MainMa: E você acha que os e-mails não podem ser falsificados ou falsificados?
Ben Voigt
3

O status legal do que você faz é independente do mérito técnico da solução.

Por exemplo :

Durante anos, os membros britânicos do parlamento ignorariam as petições eletrônicas porque a lei exigia que as petições apresentassem uma assinatura para cada pessoa. Então, alguém percebe que um hash de endereço de email, data, hora e comentário - mesmo que não contenha chave secreta - constitui uma "assinatura digital" aos olhos da lei do Reino Unido.

Portanto, peça a um advogado para lhe dizer o que fazer e faça. Não se preocupe se é som.

Ou faça o que seu cliente pede, confiando que ele consultou um advogado. Verifique se há um registro da discussão.

magro
fonte
Therefore, get a lawyer to tell you what to do, and do it. Don't worry whether it's sound. Or, do what your client asks, trusting that they have checked with a lawyer. Make sure there's a record of the discussion.isso apenas cumpriria sua obrigação legal e política para com o cliente; Acho que o OP (com razão) está mais interessado em ajudar o cliente a cumprir seus requisitos legais (embora o cliente atualmente pareça entender mal seus próprios requisitos legais, sugerindo a solução errada).
Lie Ryan
3

Como você deve obter uma captura de tela? O que você tem é o HTML e o que você está enviando para o cliente, e a resposta eletrônica do cliente. Nem envolve uma captura de tela.

A captura de tela é do que o navegador renderiza e diferirá um pouco, dependendo do navegador em uso e das configurações e equipamentos do outro lado. Pessoalmente, eu navego usando o Firefox, Chrome, Opera, Mobile Safari, ocasionalmente Lynx e até um pouco de IE algumas vezes.

Você pode renderizar a página em um navegador padrão e capturá-la, mas criar seu próprio documento e gravar não impressionará um juiz. Você pode pedir ao usuário para enviar uma captura de tela, mas boa sorte para fazer isso. Nem todos os dispositivos de navegação têm uma maneira óbvia de tirar e enviar uma captura de tela (como você faz isso no iPhone?). Se você estiver lidando com um cliente com deficiência visual usando um leitor de tela, pode não haver representação visual no final do cliente. (Vi alguns amigos meus cegos usarem um computador portátil, que não tinha tela alguma.)

Portanto, explique ao cliente que não há como obter uma captura de tela e talvez nem haja uma tela para tirar uma foto.

David Thornley
fonte
1
iPhone: mantenha pressionado o botão LOCK por alguns segundos. Android: faça o rootkit do telefone e ore. (I começa o ponto que você estava fazendo, só estou dizendo ...)
BRPocock
3

Na verdade, é possível criar um Controle de acesso obrigatório em conjunto com um Registro de data e hora confiável mais uma assinatura digital para o banco de dados para garantir que o valor da coluna seja confiável. As capturas de tela não são a resposta correta; no entanto, existem soluções de computação confiável que alcançam exatamente o que você deseja alcançar. Se você quiser mais detalhes, pode iniciar uma conversa comigo.

Ahmed Masud
fonte
2

Como já foi dito, você não pode realmente provar que a pessoa concordou ou não com tanta certeza que a melhor solução é:

a) Peça à pessoa que confirme seu contrato por meio de um link enviado para o endereço de e-mail (isso garante que eles não entraram apenas em [email protected])

b) Dê a eles a opção de cancelar a assinatura de marketing / promoção

Matt Wilko
fonte
2

Um esquema que está mais próximo de ser inviolável seria gerar um par de chaves pública / privada quando o usuário preencher o formulário usando Javascript (do lado do cliente), depois enviar o conteúdo do formulário, a chave pública e a assinatura para servidor e apresente a chave privada ao usuário e peça que ele tome nota e armazene-a em algum lugar seguro.

Com esse esquema, você poderá provar que é impossível violar os dados do formulário, pois não conhecia a chave privada usada para gerar a assinatura. A fraqueza desse esquema é que você deve provar que nunca tocou na chave privada e que o usuário não deve perder a chave privada.

Como você deve provar que nunca teve acesso à chave privada, pode ser necessário incluir o HTML e todo o Javascript ao gerar a assinatura do formulário; isso comprova a forma exata que o usuário usa para enviar os dados (portanto, provando que você não modificou o formulário / javascript desde o envio deles, provando que você não usou o javascript para roubar a chave privada).

Esse esquema é complexo e, como em qualquer sistema complexo, não posso garantir que não haja um buraco (na verdade, estou bastante confiante de que existe, e alguém provavelmente seria capaz de apontar isso).

Lie Ryan
fonte
2

Uma captura de tela não seria muita prova, pois não há como verificar se uma captura de tela é real. Isso poderia ser tão facilmente falsificado. Quanto mais soluções técnicas, existe o mecanismo de armazenamento de arquivospara MySQL que suporta apenas insert e select. Você não pode excluir da tabela. Lembre-se de que pode ser possível ALTER TABLE para um mecanismo de armazenamento diferente, excluir o registro e ALTER TABLE para alterar o mecanismo novamente sem que ninguém perceba, mas, com sorte, você pode limitar o processo de root e permitir que o root efetue login localmente . Depois, basta rastrear os logins na máquina de banco de dados local real para descobrir quem possivelmente a alterou. Você também pode analisar os logs binários ou ativar o log de consultas brutas para ver quem poderia ter emitido consultas que resultaram nesse tipo de atividade. Não tenho certeza de qual tecnologia de banco de dados você está usando, mas provavelmente você poderá encontrar uma solução que impeça a alteração fácil dos dados.

Kibbee
fonte
2

Vou recomendar que você se sente e leia a Lei ESIGN . Este estatuto abrange o que é e o que não é necessário para registrar uma assinatura eletrônica para que ela seja juridicamente vinculativa. Em um empregador anterior, descobrimos que o mais difícil obstáculo legal era poder tornar as assinaturas e os documentos legíveis por 10 a 15 anos no futuro.

Os detalhes de cada formulário preenchido devem ser salvos de forma confiável. Aparentemente, salvar os valores do formulário em um banco de dados - uma coluna indicando se o usuário concordou ou não - não é suficiente, porque um banco de dados pode ser alterado após os usuários enviarem o formulário. Nosso cliente afirma que outros portais da faculdade criam uma captura de tela do formulário preenchido e o salvam em algum lugar de uma pasta dedicada, de uma maneira que é facilmente encontrada, como atribuir ao arquivo um nome que inclua o nome do usuário e a data e tempo.

Como outros já apontaram, a captura de tela é algo que não pode ser feito. Pode ser falsificado, pois todos os programas "mágicos" são pura falsificação: você alguém sendo serrado ao meio, mas na verdade não é serrado ao meio.

Tangurena
fonte
1

Já lidei com minha parte de loucos antes. Posso pensar em algumas soluções técnicas, mas por que não voltar ao cliente e sugerir que a pergunta seja "Você não deseja receber e-mails de marketing?" (ou redação semelhante) e permitir que a pessoa desative a opção? Então você não precisa de uma captura de tela.

jqa
fonte
1

Como todos observaram, o mérito técnico e jurídico da solicitação de recurso é inexistente. Dito isto, existe a opção de permitir que um usuário faça e carregue manualmente uma captura de tela como um anexo de formulário.

Moshe
fonte