首页 > 前端开发 > 正文

前端web开发html如何避免js的跨域访问

2023-10-21 11:51:00 | 我爱编程网

前端web开发html如何避免js的跨域访问相关内容,小编在这里做了整理,希望能对大家有所帮助,关于前端web开发html如何避免js的跨域访问信息,一起来了解一下吧!

本文目录一览:

前端web开发html如何避免js的跨域访问

前端web开发html如何避免js的跨域访问

前端web开发html避免js的跨域访问的方法是后台服务端做域配置兼容处理。
1、在server端请求过滤的时候加入以下控制:

<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
</customHeaders>
</httpProtocol>

Access-Control-Allow-Origin这个属性配置成*就表示接受任何域过来的请求
2.ajax中请求如下:
$.ajax({
xhrFields: {
withCredentials: true
},
data:{ my: 'a' },
url: ' ', 这里是跨域访问
type: 'POST'
})

前端web开发html如何避免js的跨域访问

web攻击有哪些?怎么防护?

1、DoS和DDoS攻击(DoS(Denial of Service),即拒绝服务,造成远程服务器拒绝服务的行为被称为DoS攻击。其目的是使计算机或网络无法提供正常的服务。最常见的DoS攻击有计算机网络带宽攻击和连通性攻击)
防范:(1) 反欺骗:对数据包的地址及端口的正确性进行验证,同时进行反向探测。(2) 协议栈行为模式分析:每个数据包类型需要符合RFC规定,这就好像每个数据包都要有完整规范的着装,只要不符合规范,就自动识别并将其过滤掉。(3) 特定应用防护:非法流量总是有一些特定特征的,这就好比即便你混进了顾客群中,但你的行为还是会暴露出你的动机,比如老重复问店员同一个问题,老做同样的动作,这样你仍然还是会被发现的。(4) 带宽控制:真实的访问数据过大时,可以限制其最大输出的流量,以减少下游网络系统的压力。
2、CSRF(Cross Site Request Forgery),即跨站请求伪造,是一种常见的Web攻击,但很多开发者对它很陌生。CSRF也是Web安全中最容易被忽略的一种攻击。
防范:(1) 验证码。应用程序和用户进行交互过程中,特别是账户交易这种核心步骤,强制用户输入验证码,才能完成最终请求。在通常情况下,验证码够很好地遏制CSRF攻击。但增加验证码降低了用户的体验,网站不能给所有的操作都加上验证码。所以只能将验证码作为一种辅助手段,在关键业务点设置验证码。(2) Referer Check。HTTP Referer是header的一部分,当浏览器向web服务器发送请求时,一般会带上Referer信息告诉服务器是从哪个页面链接过来的,服务器籍此可以获得一些信息用于处理。可以通过检查请求的来源来防御CSRF攻击。正常请求的referer具有一定规律,如在提交表单的referer必定是在该页面发起的请求。所以通过检查http包头referer的值是不是这个页面,来判断是不是CSRF攻击。但在某些情况下如从https跳转到http,浏览器处于安全考虑,不会发送referer,服务器就无法进行check了。若与该网站同域的其他网站有XSS漏洞,那么攻击者可以在其他网站注入恶意脚本,受害者进入了此类同域的网址,也会遭受攻击。出于以上原因,无法完全依赖Referer Check作为防御CSRF的主要手段。但是可以通过Referer Check来监控CSRF攻击的发生。(3) Anti CSRF Token。目前比较完善的解决方案是加入Anti-CSRF-Token,即发送请求时在HTTP 请求中以参数的形式加入一个随机产生的token,并在服务器建立一个拦截器来验证这个token。服务器读取浏览器当前域cookie中这个token值,会进行校验该请求当中的token和cookie当中的token值是否都存在且相等,才认为这是合法的请求。否则认为这次请求是违法的,拒绝该次服务。这种方法相比Referer检查要安全很多,token可以在用户登陆后产生并放于session或cookie中,然后在每次请求时服务器把token从session或cookie中拿出,与本次请求中的token 进行比对。由于token的存在,攻击者无法再构造出一个完整的URL实施CSRF攻击。但在处理多个页面共存问题时,当某个页面消耗掉token后,其他页面的表单保存的还是被消耗掉的那个token,其他页面的表单提交时会出现token错误。
3、XSS(Cross Site Scripting),跨站脚本攻击。为和层叠样式表(Cascading Style Sheets,CSS)区分开,跨站脚本在安全领域叫做“XSS”。
防范:(1) 输入过滤。永远不要相信用户的输入,对用户输入的数据做一定的过滤。如输入的数据是否符合预期的格式,比如日期格式,Email格式,电话号码格式等等。这样可以初步对XSS漏洞进行防御。上面的措施只在web端做了限制,攻击者通抓包工具如Fiddler还是可以绕过前端输入的限制,修改请求注入攻击脚本。因此,后台服务器需要在接收到用户输入的数据后,对特殊危险字符进行过滤或者转义处理,然后再存储到数据库中。(2) 输出编码。服务器端输出到浏览器的数据,可以使用系统的安全函数来进行编码或转义来防范XSS攻击。在PHP中,有htmlentities()和htmlspecialchars()两个函数可以满足安全要求。相应的JavaScript的编码方式可以使用JavascriptEncode。(3) 安全编码。开发需尽量避免Web客户端文档重写、重定向或其他敏感操作,同时要避免使用客户端数据,这些操作需尽量在服务器端使用动态页面来实现。(4) HttpOnly Cookie。预防XSS攻击窃取用户cookie最有效的防御手段。Web应用程序在设置cookie时,将其属性设为HttpOnly,就可以避免该网页的cookie被客户端恶意JavaScript窃取,保护用户cookie信息。(5)WAF(Web Application Firewall),Web应用防火墙,主要的功能是防范诸如网页木马、XSS以及CSRF等常见的Web漏洞攻击。由第三方公司开发,在企业环境中深受欢迎。
4、SQL注入(SQL Injection),应用程序在向后台数据库传递SQL(Structured Query Language,结构化查询语言)时,攻击者将SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。
防范:(1) 防止系统敏感信息泄露。设置php.ini选项display_errors=off,防止php脚本出错之后,在web页面输出敏感信息错误,让攻击者有机可乘。(2) 数据转义。设置php.ini选项magic_quotes_gpc=on,它会将提交的变量中所有的’(单引号),”(双引号),\(反斜杠),空白字符等都在前面自动加上\。或者采用mysql_real_escape()函数或addslashes()函数进行输入参数的转义。(3) 增加黑名单或者白名单验证。白名单验证一般指,检查用户输入是否是符合预期的类型、长度、数值范围或者其他格式标准。黑名单验证是指,若在用户输入中,包含明显的恶意内容则拒绝该条用户请求。在使用白名单验证时,一般会配合黑名单验证。
5、上传漏洞在DVBBS6.0时代被黑客们利用的最为猖獗,利用上传漏洞可以直接得到WEBSHELL,危害等级超级高,现在的入侵中上传漏洞也是常见的漏洞。该漏洞允许用户上传任意文件可能会让攻击者注入危险内容或恶意代码,并在服务器上运行。
防范: (1)检查服务器是否判断了上传文件类型及后缀。 (2) 定义上传文件类型白名单,即只允许白名单里面类型的文件上传。 (3) 文件上传目录禁止执行脚本解析,避免攻击者进行二次攻击。 Info漏洞 Info漏洞就是CGI把输入的参数原样输出到页面,攻击者通过修改输入参数而达到欺骗用户的目的。

前端web开发html如何避免js的跨域访问

web前端怎么防止代码注入攻击

三种方式: 我爱编程网

一,HTML防注入。
一般的html注入都是在字符串中加入了html标签,用下JAVA代码可以去掉这部分代码。
代码如下,自己封装成方法即可。
String msge = "asdasdasdasd <div id=\"f\">asdfsdf";
System.out.println(msge);
msge = msge.replace("&", "&");
msge = msge.replace("<", "<");
msge = msge.replace(" ", " ");
msge = msge.replace(">", ">");
msge = msge.replace("\"", """);
msge = msge.replace("'", "&qpos;");
System.out.println(msge);
二、防SQL注入
最简单最容易的是限制用户输入。
简单点的就是不允许用户输入单引号 和 --,因为单引号号--在SQL中都是影响执行的。
但SQL注入是多方面的,防止的方法也有很多种。
1、地址栏禁止特殊字符防SQL注入

把特殊字符(如and、or、'、")都禁止提交就可以防止注入了。

2、php过滤html字符串,防止SQL注入
批量过滤post,get敏感数据
$_GET = stripslashes_array($_GET);
$_POST = stripslashes_array($_POST);
数据过滤函数
function stripslashes_array(&$array) {
while(list($key,$var) = each($array)) {
if ($key != 'argc' && $key != 'argv' && (strtoupper($key) != $key || ''.intval($key) == "$key")) {
if (is_string($var)) {
$array[$key] = stripslashes($var);
}
if (is_array($var)) {
$array[$key] = stripslashes_array($var);
}
}
}
return $array;
}
3、替换HTML尾标签
function lib_replace_end_tag($str)
{
if (empty($str)) return false;
$str = htmlspecialchars($str);
$str = str_replace( '/', "", $str);
$str = str_replace("\\", "", $str);
$str = str_replace(">", "", $str);
$str = str_replace("<", "", $str);
$str = str_replace("<SCRIPT>", "", $str);
$str = str_replace("</SCRIPT>", "", $str);
$str = str_replace("<script>", "", $str);
$str = str_replace("</script>", "", $str);
$str=str_replace("select","select",$str);
$str=str_replace("join","join",$str);
$str=str_replace("union","union",$str);
$str=str_replace("where","where",$str);
$str=str_replace("insert","insert",$str);
$str=str_replace("delete","delete",$str);
$str=str_replace("update","update",$str);
$str=str_replace("like","like",$str);
$str=str_replace("drop","drop",$str);
$str=str_replace("create","create",$str);
$str=str_replace("modify","modify",$str);
$str=str_replace("rename","rename",$str);
$str=str_replace("alter","alter",$str);
$str=str_replace("cas","cast",$str);
$str=str_replace("&","&",$str);
$str=str_replace(">",">",$str);
$str=str_replace("<","<",$str);
$str=str_replace(" ",chr(32),$str);
$str=str_replace(" ",chr(9),$str);
$str=str_replace(" ",chr(9),$str);
$str=str_replace("&",chr(34),$str);
$str=str_replace("'",chr(39),$str);
$str=str_replace("<br />",chr(13),$str);
$str=str_replace("''","'",$str);
$str=str_replace("css","'",$str);
$str=str_replace("CSS","'",$str);
return $str;
}
三、专业的事情交给专业的工具去做。
安装安全软件。例如,在服务器中安装“服务器安全狗”,可以设置防注入,防攻击的设置,只要设置好安全规则,就可以屏蔽大多数攻击入侵。

以上就是前端web开发html如何避免js的跨域访问全部内容了,了解更多相关信息,关注我爱编程网。
与“前端web开发html如何避免js的跨域访问”相关推荐
PHP框架跨域问题 PHP 如何实现不同网站登录跨域的问题
PHP框架跨域问题 PHP 如何实现不同网站登录跨域的问题

怎么解决跨域问题1、通过jsonp跨域JSONP(JSONwithPadding:填充式JSON),应用JSON的一种新方法,JSON、JSONP的区别:1、JSON返回的是一串数据、JSONP返回的是脚本代码(包含一个函数调用)2、JSONP只支持get请求、不支持post请求(类似往页面添加一个script标签,通过src属性去触发对指定地址的请求,故只能是Get请求

2023-09-15 21:54:08
web前端开发怎么实现跨域 详解如何解决vue开发请求数据跨域的问题(基于浏览器的配置解决)
web前端开发怎么实现跨域 详解如何解决vue开发请求数据跨域的问题(基于浏览器的配置解决)

前端跨域问题有哪些常用的解决方式自己搭一个小型服务器就可以了。或者webstorm和brackets都有自己集成的小型服务器,能解决跨域问题。还有一种方法,就是如果是chrome浏览器的话这里加上“--allow-file-access-from-files”也可以解决跨域问题前端跨域如何解决?什么是跨域?跨域是通俗的说是从一个域名去请求另一个域名的资源。比

2023-10-13 07:45:48
PHP框架跨域问题 thinkphp6解决 CORS 跨域
PHP框架跨域问题 thinkphp6解决 CORS 跨域

PHP如何实现不同网站登录跨域的问题可以用sso单点登录解决这个问题,本质是不同的域名能同时记录同一个cookie很久之前做过这个功能,有点忘了,大概的步骤:例如你在test1.com登录成功后,会给一个应用中心发请求,这个应用中心保存着所有的sso登录的设置cookie的url,每个应用组装成一个script标签返回给你你接收到这些script标签后,让这些标签

2023-09-15 21:53:57
web前端开发跨域 跨域是什么意思
web前端开发跨域 跨域是什么意思

跨域是什么意思问题一:跨域是指什么,因为什么引起的?有哪些解决方案?web前端知识跨域是指不同域名之间相互访问例如我的电脑上有2个服务器192.168.0.11192.168.0.12如果第一个服务器上的页面要访问第二个服务器就叫做跨域或者baidu要访问xxx也是不同域名也是跨域HTML5里有个window.postMessage方法,支持跨域访问,详情可以参考webhek/win

2023-09-14 06:05:49
web前端开发中如何重复提交 安卓开发 怎么避免重复提交请求
web前端开发中如何重复提交 安卓开发 怎么避免重复提交请求

安卓开发怎么避免重复提交请求web前端数据请求或者表单提交往往通过对dom的点击事件来操作,但是往往因为认为点击过快(少年手速挺快的嘛),或者因为响应等待使得用户误人为没操作而重复很多次点击,造成表单数据的连续重复提交,造成用户体检的不好,甚至影响到整个系统的安全性。而前端的防治重复提交至少很有效的防治了人为正常操作下的很多不必要麻烦。下面就来讲讲如何有效避免前端的表单重复提交 表单提交有以

2023-10-10 17:30:35
php框架m统计流量 php如何统计访问单篇文章的访问量
php框架m统计流量 php如何统计访问单篇文章的访问量

PHP流量统计,要求每次会话统计一次不知道你的具体需求是什么样的,建议不要采取Session_OnStart和Session_OnEnd的方式,这种方式并不可靠,简单一点的方法就是每产生一个新的session就加1(可以用isset检查session中有没有某一个标记变量,如果不存在,就是新的session,给它添加上标记变量,并统计加1),至于session什么时候结束就不用管了。如果

2023-09-22 02:10:40
禁止访问php框架模板文件 php如何禁止ip访问网站
禁止访问php框架模板文件 php如何禁止ip访问网站

php如何禁止ip访问网站php禁止ip访问网站的方法:首先创建一个PHP示例文件;然后通过“$ban_range_low”和“$ban_range_up”实现禁止某个IP段;最后输出ip访问结果即可。推荐:《PHP视频教程》PHP禁止IP或IP地址段访问示例示例一:&lt;?//禁止某个IP$banned_ip=array("127.0.0.1","192

2023-09-29 17:30:28
yi框架如何访问php文件 php文件如何浏览
yi框架如何访问php文件 php文件如何浏览

php如何打开文件php文件格式怎么打开?要搞清楚php文件用什么打开?首先我们来看php文件是什么文件,PHP是一个网页脚本,文件后缀名为.php,如下图:(推荐学习:PHP视频教程)但不同于htmlxml标签语言,直接可以通过浏览器打开,php文件需要有PHP的运行环境才可以访问和打开,如果只是编辑PHP文件,只需要用:php文件打开方式一:用记事本打开右击.php文

2023-09-26 04:15:22