1、Html之间添加以下代码
functionclick(){if(event.button==2){alert('不准偷看!');}}document.onmοusedοwn=click
2.禁止查看网页源代码
单纯的.htm是不可能真正屏蔽源代码的! 如果你想看源代码,那是没有办法阻止的。 你可以用TELEPROT下载任何文件,相当于制作了一个镜像网站,除非服务器有安全设置和加密。
下面提供几种参考方法,以免浏览我的个人主页时右键无法使用或看不到源程序或源代码。
1)在首页输入代码
函数点击(){
if(事件.按钮==2){
alert(/'抱歉,严禁此功能^_^#39;)
document.onmοusedown=单击
对于广大网页编辑者来说,源代码的保护是最关心的,但往往却没有办法。 辛勤工作的网页在浏览者面前没有任何遮盖。 只要有人点击鼠标右键并选择(查看源代码),就可以获得网页的完整代码,甚至稍加修改就变成了别人的网站。 网页。 本文将利用JavaScript技术改变页面的源代码,使浏览者无法获取源代码,达到保护代码的目的。
首先,应屏蔽Internet Explorer工具栏中的“查看”功能,官方页面采用框架结构的形式。 如果你的页面没有使用框架结构网页游戏推广源码,也不需要使用框架结构,可以使用“零框架”技术(官方页面分为左框架和右框架,左框架的长度为1,而右框是原始页面)。 该方法的代码如下:
欢迎来到NetStart--Netwalker
将此文件保存为主文件index.htm,建一个空文件ps.htm,将原来的页面文件保存为index.html(与主文件的名称只是扩展名略有不同)。 采用零帧技术具有以下优点:
1、查看者无法直接从工具栏的源代码项中获取页面代码网页游戏推广源码,只能获取框架主文件的代码(即上面的代码)。
2、可以使用左框架文件ps.htm来加载网页的一些中间应用,如背景音乐、网页计数器、cookie应用等。
其次,要屏蔽键盘右键的显示源文件功能,即在要保护的页面文件(上例中的index.html文件)中添加如下代码:
函数点击(){
if(event.button==2||event.button==3){alert(/'"你想用右键做什么?"^_^/')}}
//冒号中的提示可以自定义
document.onmοusedown=单击
最后,为了防止一些懂网页编译语言的人通过框架主文件中的链接手动找到受保护页面的源代码,还应该在受保护页面中添加以下代码:
if(top==self)top.location="index.html"
这段代码会提供移动功能,让浏览器很难直接看到页面,而是手动移动到主框架文件index.html来保护页面。
完成上述三个步骤并根据框架结构对您的主页进行更改后,您的主页的源代码将无法提供给互联网上的浏览者,因此您可以庆祝一下。
另外,如果实在不想使用框架页面,可以通过特殊的方式打开浏览器的新窗口,结合屏蔽键盘的功能代码也可以收到同样的效果。 开启方法如下:
代码中,key.html是受保护页面的文件名。 新窗口的高度和长度可以由用户定义,单位是像素。
注意:嵌入的JavaScript代码应添加在原始文档的元素区域中。
进阶深度文章
接下来的部分就是利用JavaScript技术来达到保护在线网页的目的。 俗话说“强者自有强手”,有些人使用Webzip、TelePro、Offline等离线浏览器下载你的主页,可以绕过JavaScript保护在线网页的防线,然后逐步分析下载后的网页。 有矛盾的地方就一定有矛盾,你还可以使用JavaScript构建大多数离线浏览器都难以下载你的网页的动态重定向文件,方法如下。 您可以将上例中的受保护页面重命名为index1.html,并将文件index.html更改为以下代码:
window.location.replace(/'index1.html/')//这句话形成网页跳转功能
对于Internet Explorer 5新增的离线浏览功能(离线工作),上述方法有时会失败,可以通过在网页上设置cookie的中间技术来达到保护目的。 一旦cookie过期,即使网页已经下载到本机,也很难浏览,哈哈,牛逼:)
应添加到文件中的cookie代码段如下:
函数 getCookieVal(偏移量)
varendstr=document.cookie.indexOf(";",offset);
if(endstr==-1)
endstr = document.cookie.length;
return nescape(document.cookie.substring(offset, endstr));
函数GetCookie(名称)
vararg=名称+“=”;
varalen = 参数。 长度;
varclen=document.cookie.length;
变量=0;
当我<clen)
varj=i+alen;
if(document.cookie.substring(i,j)==arg)
返回 getCookieVal(j);
i=document.cookie.indexOf("",i)+1;
如果(我==0)
休息;
返回空值;
函数SetCookie(名称,值)
varargv = SetCookie.arguments;
varargc = SetCookie.arguments.length;
varexpires =(2 <argc)?argv[2]:true;
变量路径=(3 <argc)?argv[3]:true;
变量域=(4 <argc)?argv[4]:true;
变量安全=(5 <argc)?argv[5]:true;//安全模式生效
document.cookie=名称+"="+转义(值)+
((expires==null)? "":(";expires="+expires.toGMTString()))+
((path==null)? "":(";path="+path))+
((domain==null)? "":(";domain="+domain))+
((secure==true)?";secure":"");
函数重置计数(名称)
访问次数=0;
SetCookie(expdate,"/",true,true);
地点。 重新加载();
varexpdate = newDate();
瓦尔访问;
expdate.setTime(expdate.getTime()+(24*60*60*1000));//COOKIES过期时间设置,这里是1天
if(!(访问=GetCookie("访问")))
访问次数=0;
访问++;
SetCookie(expdate,"/",true,true);
如果你已经做到了这一步,那么对你网页的保护就不再是基于传统意义上的道德观念或者版权意识,而是真正的技术手段的保护。
中级研究
网页的保护不仅涉及源代码的保护,还包括网页数据或网络数据库的保护。 网络数据库的保护可以采用基于IIS CGI套接字的认证程序、SQL安全技术、ASP安全认证程序、JavaApplet安全认证程序等手段,这些都属于较高级别的安全措施,包含的内容也很多,本文不予介绍。 本文将介绍利用JavaScript技术构建的页面认证socket。 将以下代码添加到需要数据保护且仅可供有限数量的人访问的页面:
注意:嵌入的JavaScript代码应添加在原始文档的元素区域中。
代码中主键sWord的值hibow就是登录受保护页面的密码。 您可以将用户自定义的密码告诉允许访问该页面的用户。 只有密码输入正确,浏览者才能看到页面内容,否则会循环停留在密码登录框,无法进入!
这样就无法锁定密码。 只需先单击并按住左侧按钮,然后单击右侧按钮,然后单击左侧按钮即可查看。 如果你的主页是用 ASP、PHP 或 CGI 构建的,通常对方是看不到源代码的。 反右键的方式已经过时了。 另一种方法是删除所有回车并压缩整个文件。 这样你就听不清楚了,也不影响你的行动。
1.问题描述
明天遇到一个问题,要获取HTTP报文的请求和响应时间,因为没有原生API可以调用,所以需要一定的方法~
html复制代码
java复制代码@WebServlet("/print")
public class printServlet extends HttpServlet {
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//...
}
}
2. 抓包观察
我们可以在发起POST请求后首先观察HTTP请求消息是否在这个请求时间。 如果有的话,可以通过一定的手段来获得。
3.查找文档
由于[HttpServletRequest]和[HttpServletResponse]为我们提供了很多原生API游戏源码提取,我们可以找出我们可以使用哪些API。 这里建议直接进入官网-->链接
4.思考并尝试
找了半天还是没找到游戏源码提取,就想着自己自动获取这个时间
java复制代码SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss EEEE");//格式化日期
Date currentTime = new Date();//获取当前时间
String date = formatter.format(currentTime).toString();
以及如何使用当前时间? 什么时间可以拿到?
请求时间结束了,响应时间呢? 你也用这个来问吗?
5. 持续改进
通过将我们在前端代码中获取到的时间返回给浏览器,我们可以看到【请求时间】和【响应时间】是相同的。 为什么?
java复制代码yyyy-MM-dd HH:mm:ss
java复制代码yyyy-MM-dd HH:mm:ss.SSSSSSSSS
而我这样做只是死路一条,我早想到了一个更聪明的办法
java复制代码try {
Thread.sleep(500); //让程序暂停0.5s
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
6. 源码说明
这是我们用来解决本体的源代码
后端:
html复制代码
表单
前端:
java复制代码@WebServlet("/print")
public class printServlet extends HttpServlet {
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.setContentType("text/html;charset=utf-8");
// 在doPost()方法开始时获取一下请求时间
SimpleDateFormat formatter=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSSSSSSSS");//格式化日期
Date currentTime=new Date();//获取当前时间
String date=formatter.format(currentTime).toString();
StringBuilder stringBuilder = new StringBuilder();
System.out.println("-------------------------------------------------");
stringBuilder.append("请求的URL = " + req.getRequestURL()); //请求的URL
stringBuilder.append("
");
stringBuilder.append("请求方法 = " + req.getMethod()); //请求方法
stringBuilder.append("
");
stringBuilder.append("请求时间 = " + date); //请求时间
stringBuilder.append("
");
try {
Thread.sleep(500); //让程序暂停0.5s
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
// 在doPost()方法快结束时获取一下响应时间
currentTime = new Date();//获取当前时间
String date2 = formatter.format(currentTime).toString();
stringBuilder.append("响应时间 = " + date2);
stringBuilder.append("
");
stringBuilder.append("响应状态码 = " + resp.getStatus());
stringBuilder.append("
");
resp.getWriter().write(stringBuilder.toString());
}
}
简单说一下前端逻辑
java复制代码stringBuilder.append("
");
java复制代码 resp.setContentType("text/html;charset=utf-8");
java复制代码resp.getWriter().write(stringBuilder.toString());