将网页编码为自我毁坏后查看

时间:2016-08-23 01:07:53

标签: javascript php html overwrite destroy

我有一条消息" 我的秘密消息"我将在html或php页面上输入。 myexample.com/secretlink.html

我怎么能说当有人访问我的页面时,可能有JS的计时器将启动(简单部分)但是当计时器启动时它会激活破坏页面或可能编辑它的代码,之后它会尝试重新加载页面现在不存在或不包含我的信息。

我在Stackoverflow上发现的与此相似的是" Website Self Destruct from Browser Bar"

3 个答案:

答案 0 :(得分:1)

这是一个可能的解决方案:将消息存储在SQL表中。然后,在某个PHP页面上显示该消息,例如example.com/?qid=12345

当用户请求页面时,将在数据库中的该消息上设置一个标志,表示已被查看。然后,当计时器用完时,重定向到删除页面,该页面将销毁数据库行并重定向它们(或告诉它们已过期)。

最后,如果页面被请求,并且标记表明它已被已经设置,则可以销毁该消息并说它已被声明。

或者,如果您希望它在一定时间后暂停,您只需添加" first_viewed_at"数据库中的DATETIME字段,如果它过去太远,会导致脚本销毁该消息。

答案 1 :(得分:1)

添加以下“.htaccess”文件,该文件会将任何.html请求重写为add-delete.php。页面add-delete.php将处理实际的页面删除请求。

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.+)\.html$ add-delete.php?request=%{REQUEST_URI} [L,QSA]
</IfModule>

然后让add-delete.php需要该文件,然后取消链接()它。要了解有关取消关联的详情,请转到http://php.net/manual/en/function.unlink.php。 delete-page.php文件如下所示:

<?php
// add check to prevent abuse
require($_GET["request"]);
unlink($_GET["request"]);
?>

但是,我可能会将文件保留几分钟,以防它们点击刷新。在这种情况下,我会将干净的请求文件名插入MySQL数据库表。

$db->bind("request",$_GET["request"]);
$db->query("INSERT INTO `delete_pages` (`page_name`) VALUES (:request);");

然后需要该文件。然后添加一个Crono事件来运行一个PHP脚本,通过在每个结果上运行unlink来删除表中的所有文件名。

$results = $db->query("SELECT `page_id`, `page_name` FROM `delete_pages` WHERE `timestamp` > NOW() - INTERVAL 1 MINUTE); // leave up for 1 or unlink asap

foreach($result as $row){
 unlink($row["page_name"]);
 $db->bind("page_id",$row["page_id"];
 $db->query("DELETE FROM `delete_pages` WHERE `page_id` = :page_id");
}

如果你真的想用Javascript做这件事你可以做一个定时器而不是向服务器发送xmlhttp请求

<script> 
window.onload = function(page_name) { 
xmlhttp = new XMLHttpRequest(); xmlhttp.open("GET","delete-page.php?page="+page_name, false); xmlhttp.send(null); document.getElementById("delete-update").value=xmlhttp.responseText; } 
</script>

我希望有所帮助。

答案 2 :(得分:0)

https://jsfiddle.net/68733393/

在页面加载时只需启动一个功能,在一段时间后将删除你的秘密。

<div id='secret'>
  I am secret
</div>

setTimeout(function(){
  document.getElementById('secret').innerHTML = '';
}, 1000)