精华内容
下载资源
问答
  • web开发常见问题整理

    千次阅读 2018-07-03 08:00:52
    This指向问题 1. 在方法中谁调用this就指向谁 ...在项目中this指向问题常见示例: 上面1: 因为在setInterval中要设置this.setState(),而此时的this已经指向window而不是class的this: ...

    This指向问题
    1. 在方法中谁调用this就指向谁
    在对象方法中调用
    这里写图片描述
    事件绑定
    这里写图片描述
    事件监听
    这里写图片描述
    2. 在构造函数或者构造函数原型对象中this指向构造函数的实例
    这里写图片描述
    在项目中this指向问题的常见示例:
    这里写图片描述
    上面1:
    因为在setInterval中要设置this.setState(),而此时的this已经指向window而不是class的this:
    这里写图片描述
    这里写图片描述

    上面这种情况就是this指向出现问题的一种情况:
    解决方法:1.先把this赋值给that,函数内部使用that
    2.使用箭头函数
    这里写图片描述
    这里写图片描述
    针对以上这种情况的解释:
    也就是谁调用的函数,函数体中的this就指向谁。没有使用箭头函数时this出现在全局函数setInterval ()中的匿名函数里,并没有某个对象进行显示调用,所以this指向window对象。这时直接使用是指向了window,e而不是class类。
    当使用箭头函数时this指向函数的宿主对象了。

    但是有一种情况需要注意就是多层嵌套的箭头函数,原则就是:
    1.箭头函数的this绑定看的是this所在的函数定义在哪个对象下,绑定到哪个对象则this就指向哪个对象。
    2.如果有对象嵌套的情况,则this绑定到最近的一层对象上。
    页面布局的问题
    1. 假如说构造一种这样的布局:
    这里写图片描述
    这是可以使用calc()函数:
    这里写图片描述

    注意:calc()在css3中和less中的用法不太一样,在less中使用的方式是
    width: calc(~”100%-20px”);
    也可以使用弹性布局来实现:
    这里写图片描述
    2. 各种剧中效果的实现:
    水平居中元素:
    这里写图片描述
    这里写图片描述
    垂直居中元素

    这里写图片描述
    这里写图片描述
    水平垂直居中元素
    这里写图片描述
    ……详情参考https://blog.csdn.net/qq_26941173/article/details/80042271
    同时flex布局参考
    https://blog.csdn.net/qq_26941173/article/details/80379102

    展开全文
  • Java Web开发常见问题.pdf

    千次下载 热门讨论 2013-04-21 03:50:00
    Java Web开发常见问题.pdf
  • Web开发常见问题汇总

    万次阅读 2021-11-09 12:28:41
    Spring注解之@Scope @Scope注解是Spring IOC容器中的一个作用域,在Spring IOC容器中具有以下几种作用域: 基本作用域singleton(单例)、prototype(多例),Web作用域(reqeust、session、globalsession),自定义...

    Spring注解之@Scope

    @Scope注解是Spring IOC容器中的一个作用域,在Spring IOC容器中具有以下几种作用域:

    基本作用域singleton(单例)、prototype(多例),Web作用域(reqeust、session、globalsession),自定义作用域

    • singleton(单例模式):全局有且仅有一个实例
    • prototype(原型模式):每次获取bean的时候会有一个新的实例
    • request:针对每一次HTTP请求都会产生一个新的bean,同时该bean仅在当前HTTP request内有效
    • session:针对每一次HTTP请求都会产生一个新的bean,同时该bean仅在当前HTTP session内有效
    • globalsession:类似于标准的HTTP Session作用域,不过它仅仅在基于portlet的web应用中才有意义

    Cause: java.lang.IllegalArgumentException: argument type mismatch

    错误信息:

    nested exception is org.apache.ibatis.reflection.ReflectionException: Error instantiating class * with invalid types () or values (). Cause: java.lang.IllegalArgumentException: argument type mismatch

    错误原因:

    1. @Data 和 @Builder 导致无参构造丢失
    • 单独使用@Data注解,是会生成无参数构造方法。
    • 单独使用@Builder注解,发现生成了全属性的构造方法。

    @Data和@Builder同时使用:没有了默认的构造方法。如果手动添加无参数构造方法或者用@NoArgsConstructor注解都会报错!

    解决方法:使用@Builder注解,最简单的方法就是直接写上以下4个注解:

    @Data
    @Builder
    @AllArgsConstructor
    @NoArgsConstructor
    
    1. @Builder 注解导致默认值无效

    解决方法:在默认值上,加上@Builder.Default注解

    com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field

    错误信息:

    Exception in thread “main” com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field “age” (class com.daling.bpmn.test.User), not marked as ignorable (3 known properties: “id”, “name”, “flag”])

    错误原因:反序列化时,遇到未知属性

    解决方案:

    • 添加注解:@JsonIgnoreProperties(ignoreUnknown = true)

    • 配置策略

      ObjectMapper objectMapper = new ObjectMapper();
      
      objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
      

    雪花算法与精度丢失问题

    问题描述:JavaScript无法处理Java的长整型Long导致精度丢失,具体表现为主键最后两位永远为0

    解决思路:Long转为String返回

    解决方案:

    • FastJson 处理方式

      @Override
      public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
          FastJsonHttpMessageConverter fastJsonConverter = new FastJsonHttpMessageConverter();
          FastJsonConfig fjc = new FastJsonConfig();
          // 配置序列化策略
          fjc.setSerializerFeatures(SerializerFeature.BrowserCompatible);
          fastJsonConverter.setFastJsonConfig(fjc);
          converters.add(fastJsonConverter);
      }
      
    • JackJson 处理方式

    1. 方式一

      // 注解处理,这里可以配置公共 baseEntity 处理
      @JsonSerialize(using=ToStringSerializer.class)
        public long getId() {
            return id;
      }
      
    2. 方式二

      // 全局配置序列化返回 JSON 处理
      final ObjectMapper objectMapper = new ObjectMapper();
      SimpleModule simpleModule = new SimpleModule();
      simpleModule.addSerializer(Long.class, ToStringSerializer.instance);
      objectMapper.registerModule(simpleModule);
      

    Cannot determine value type from string ‘’

    错误原因:当使用了@Builder注解之后会默认把无参构造方法忽略掉,创建一个全参的构造方法

    解决方法:使用@Builder注解,最简单的方法就是直接写上以下4个注解:

    @Data
    @Builder
    @AllArgsConstructor
    @NoArgsConstructor
    

    无法反序列化LocalDateTime

    解决方法:在实体类字段中添加注解

    // 需要哪个用哪个 
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonSerialize(using = LocalDateTimeSerializer.class)
    @JsonDeserialize(using = LocalDateTimeDeserializer.class)
    

    @Mapper和@Repository区

    @Repository需要在Spring中配置扫描地址,然后生成Dao层的Bean才能被注入到Service层中。

    @Mapper不需要配置扫描地址,通过xml里面的namespace里面的接口地址,生成了Bean后注入到Service层中。

    @Validated和@Valid区别

    1. 基本概念

    Spring Validation 验证框架对参数的验证机制提供了@Validated(Spring’s JSR-303规范,是标准JSR-303的一个变种)。

    javax提供了@Valid(标准JSR-303规范),配合BindingResult可以直接提供参数验证结果。

    1. 主要区别
    @Validated@Valid
    分组提供分组功能,可在入参验证时,根据不同的分组采用不同的验证机制。无分组功能
    可注解位置可以用在类型、方法和方法参数上。但是不能用在成员属性上可以用在方法、构造函数、方法参数和成员属性上(两者是否能用于成员属性上直接影响能否提供嵌套验证的功能)
    嵌套验证用在方法入参上无法单独提供嵌套验证功能。不能用在成员属性上。也无法提供框架进行嵌套验证。能配合嵌套验证注解@Valid进行嵌套验证。用在方法入参上无法单独提供嵌套验证功能。能够用在成员属性上,提示验证框架进行嵌套验证。能配合嵌套验证注解@Valid进行嵌套验证。

    StringRedisTemplate和RedisTemplate区别

    两者的关系是StringRedisTemplate继承RedisTemplate。

    两者的数据是不共通的;也就是说StringRedisTemplate只能管理StringRedisTemplate里面的数据,RedisTemplate只能管理RedisTemplate中的数据。

    两者之间的区别主要在于他们使用的序列化类:

    StringRedisTemplate默认采用的是String序列化策略(StringRedisSerializer)。

    RedisTemplate默认采用的是JDK序列化策略(JdkSerializationRedisSerializer),存入数据会将数据先序列化成字节数组然后在存入Redis数据库。

    使用时注意事项:

    当你的Redis数据库里面本来存的是字符串数据或者你要存取的数据就是字符串类型数据的时候,那么使用StringRedisTemplate即可。

    但是如果你的数据是复杂的对象类型,而取出的时候又不想做任何的数据转换,直接从Redis里面取出一个对象,那么使用RedisTemplate是更好的选择。

    RedisTemplate使用时常见问题:

    RedisTemplate中存取数据都是字节数组。当Redis中存入的数据是可读形式而非字节数组时,使用RedisTemplate取值的时候会无法获取导出数据,获得的值为null。可以使用StringRedisTemplate试试。

    classpath和classpath*区别

    • classpath:默认只会在你项目的class路径中查找文件
    • classpath*:默认不仅包含class路径,还包括jar文件中(class路径)进行查找

    使用classpath*:Spring需要遍历所有的classpath,所以加载速度是很慢的;故在设计中,应该尽可能划分好资源文件所在的路径,尽量避免使用classpath*。

    401与403的区别

    状态码状态码英文名称中文描述
    401Unauthorized该HTTP状态码表示认证错误,它是为了认证设计的,而不是为了授权设计的。收到401响应,表示请求没有被认证—压根没有认证或者认证不正确—但是请重新认证和重试。(一般在响应头部包含一个WWW-Authenticate来描述如何认证)。通常由web服务器返回,而不是web应用。从性质上来说是临时的东西。(服务器要求客户端重试)
    403Forbidden该HTTP状态码是关于授权方面的。从性质上来说是永久的东西,和应用的业务逻辑相关联。它比401更具体,更实际。收到403响应表示服务器完成认证过程,但是客户端请求没有权限去访问要求的资源
    • 401:Unauthorized响应,应该用来表示缺失或错误的认证。
    • 403:Forbidden响应,应该在这之后用,当用户被认证后,但用户没有被授权在特定资源上执行操作。
    展开全文
  • WEB前端开发常见问题

    2019-05-28 02:02:17
    NULL 博文链接:https://ayesd.iteye.com/blog/724826
  • Web 开发常见安全问题

    万次阅读 2016-03-01 19:46:11
    这就是这篇科普文章的存在意义,希望 Web 开发者在开发时能依此逐条检查代码中的安全问题。 注:服务器运维相关的安全注意事项不在本文之列 这篇文章主要包含以下内容: 前端安全 XSS 漏洞CSRF 漏洞 后端安全...

    不是所有 Web 开发者都有安全的概念,甚至可能某些安全漏洞从来都没听说过。这就是这篇科普文章的存在意义,希望 Web 开发者在开发时能依此逐条检查代码中的安全问题。

    注:服务器运维相关的安全注意事项不在本文之列

    这篇文章主要包含以下内容:

    • 前端安全

      • XSS 漏洞
      • CSRF 漏洞
    • 后端安全

      • SQL 注入漏洞
      • 权限控制漏洞
      • SESSION 与 COOKIE
      • IP 地址
      • 验证码

    前言

    水桶底部只要有一个洞,水就能全部流光。Web 安全同理。

    前端安全

    前端安全主要表现为通过浏览器间接影响到用户数据的安全问题。

    1. XSS 漏洞

      XSS (Cross-Site Scripting),是一个我觉得耳熟能详的前端安全问题。通过构造特殊数据,在用户浏览器上执行特定脚本,从而造成危害(如以用户身份发帖、转账等)。

      由于页面内 JavaScript 几乎可以完成各种事情,因此一旦网站上有 XSS 漏洞,那些没有验证码等确认措施的操作大多都能不知情地完成,其危害甚大。

      来看看几个存在 XSS 漏洞的例子吧:

      1. Case A: HTML DOM

        <a href="/user/1">{{ user_name }}</a>

        Exploit:

        <script>alert(1)</script>
        

        Result:

        <a href="/user/1"><script>alert(1)</script></a>

        最基本的例子,如果此处不对 user_name 中的特殊符号进行 escape,就会造成 XSS。

      2. Case B: HTML Attribute

        <img src="{{ image_url }}">

        Exploit:

        " onerror="alert(1)
        

        Result:

        <img src="" onerror="alert(1)">

        这个例子表明,如果只对尖括号进行 escape 是不够的,很多时候引号也需要被 escape。简单来说,对不同输出场景,需要使用不同的 escape 规则。

      3. Case C: JavaScript

        <script>var user_data = {{ user_data|json_encode }};</script>

        Exploit:

        {"exploit": "</script><script>alert(1);//"}
        

        Result:

        <script>var user_data = {"exploit": "</script><script>alert(1);//"};</script>

        这是一个特别的例子,大多数人觉得,对于输出在 <script> 中的内容,json_encode 一下就安全了,其实不然。在这个例子中,XSS 仍然发生了。

        更可怕的是,不少编辑器的代码高亮方案中甚至无法看出上面的 Result 中存在 XSS 漏洞。如 Sublime Text 下,代码高亮结果是这样的,看上去没有任何问题:

        Sublime-Text-Highlight

        但是浏览器解析出来的结果是这样的:

        Chrome-Inspector

      解决方法:

      1. 在不同上下文中,使用合适的 escape 方式

      2. 不要相信 任何 来自用户的输入(不仅限于 POST Body,还包括 QueryString,甚至是 Headers)

    2. CSRF 漏洞

      CSRF (Cross-site request forgery),是一个知名度不如 XSS 但是却同样具有很大杀伤力的安全漏洞。它的杀伤力大正是因为很多开发者不知道这个漏洞。

      举个栗子,如果你网站 A 上的「登出」功能是这样实现的:

      <a href="http://a.com/logout.php">登出</a>

      则存在 CSRF 漏洞。假设网站 B(当然也可以是网站 A 本身)中有这么一段代码:

      <img src="http://a.com/logout.php">

      那么当用户访问的时候,就会导致网站 A 上的会话被登出。

      需要注意的是,不只是 GET 类请求,POST 类请求同样会存在 CSRF 漏洞,例如网站 B 中:

      <form action="http://a.com/transaction" method="POST" id="hack">
         <input type="hidden" name="to" value="hacker_account">
         <input type="hidden" name="value" value="100000">
      </form>
      <script>document.getElementById("hack").submit();</script>

      那么用户访问网站 B 的时候,便会自动携带 A 的 SESSION 信息,成功 POST /transaction 到网站 A。

      这个漏洞危害很大,例如以前某些 BTC 交易所就存在这个漏洞,一旦用户被诱骗访问了黑客精心布置的网站就会造成资金损失;又例如,以前某中国著名社交网站也存在这个漏洞,更糟糕的是该网站还允许用户递交自己的 <img> 显示在所有人的信息流中,且某些传播性操作可以用 GET 方式达成,这就导致黑客可以进行病毒式扩散,当然,仅仅是把 <img src="logout.do"> 嵌入信息流也是有足够大杀伤力的 :)

      解决方法:

      1. 给所有请求加上 token 检查。token 一般是随机字符串,只需确保其不可预测性即可。token 可以在 QueryString、POST body 甚至是 Custom Header 里,但千万不能在 Cookies 里。

      2. 检查 referer (请注意,这往往不能防御来自网站自身的 CSRF 攻击,如用户评论中的 <img> 就是一个常见触发点)

    后端安全

    在这里,后端安全指的是对服务器数据等可能造成直接影响的安全问题。黑客一般会直接构造数据进行攻击。

    1. SQL 注入漏洞

      SQL 注入漏洞应该也是一个大多数开发者都知道的漏洞。

      考察以下 PHP 代码:

      <?php
      
      $user = mysql_query('SELECT * FROM USERS WHERE UserName="'.$_GET['user'].'"');

      那么当请求中 user 参数为 ";DROP TABLE USERS;-- 时,合成的 SQL 语句是:

      SELECT * FROM USERS WHERE UserName="";DROP TABLE USERS;--"

      这里产生什么结果就不需要解释了吧 :) 另外,通过 SQL 注入,往往还能拿到系统权限。

      解决方法:

      所有 SQL 语句都使用参数化查询(推荐)或对参数进行 escape(不推荐)

    2. 权限控制漏洞

      这个就不仔细展开了,未经授权可以进行的操作都是权限控制漏洞。

      例如,某些网站的后台操作就仗着「以为用户不知道入口地址」不进行任何权限检查,又例如,某些操作可能出现不允许更改的字段被用户递交更改(往往是那些网页上标记为 disabled 或者 hidden 的字段),再例如,允许通过 ../ 访问到不应该被访问的文件等(一般存在于 include 中)。

      解决方法:

      所有地方都要进行权限检查(如是否已登录、当前用户是否有足够权限、该项是否可修改等),总之,不要相信任何来自用户的数据,URL 当然也是。

    3. Session 和 Cookie 是两种用于存储用户当前状态的工具。某些开发者不了解 Session 与 Cookie 的区别,误用或者混用,导致敏感信息泄露或者信息篡改。

      Cookie 存储在浏览器上,用户可以查看和修改 Cookie。
      Session 是存储在服务端的数据,一般来说安全可靠;大多数 Session 都是基于 Cookie 实现的(在 Cookie 中存储一串 SESSION_ID,在服务器上存储该 SESSION_ID 对应的内容)。

    4. IP 地址

      首先,用户的 IP 地址一般存储在 REMOTE_ADDR 中,这是唯一的可信的 IP 地址数据(视不同语言而定)。然后某些代理服务器,会将用户的真实 IP 地址附加在 header 的 VIA 或 X_FORWARDED_FOR 中(因为REMOTE_ADDR 是代理服务器自身的 IP)。所以,要获取用户 IP 地址,一般做法是,判断是否存在 VIA 或者 X_FORWARDED_FOR 头,如果存在,则使用它们,如果不存在则使用 REMOTE_ADDR。这也是网上大多数所谓教程提供的方法。

      这就产生问题了,X_FORWARDED_FOR 或 VIA 是 HTTP Header,换句话说,它们是可以被伪造的。例如,在投票中,如果采信了 X_FORWARDED_FOR,往往意味着被刷票。

      解决方法:

      只使用 REMOTE_ADDR 作为获取 IP 的手段。

    5. 验证码

      验证码里常见的问题有:非一次性、容易被识别。

      非一次性指的是,同一个验证码可以一直被用下去。一般来说,每进行一次验证码校对(无论正确与否),都应该强制更换或清除 Session 中的验证码。

      关于识别问题,在当前科技水平下,不加噪点不加扭曲的验证码几乎是 100% 可识别的。所以大家自己看着办吧…

    后记

    本文仅仅列举了一些常见的 Web 开发安全问题,还有一些很少出现但确实有危害的安全问题没有出现在这里(例如,点击劫持),读者可以自行了解。

    总之,这是一篇科普文,希望开发者可以了解并重视 Web 开发安全问题。


    另附篇讲的比较好的文章

    http://www.haomou.net/2015/10/30/2015_webxss/

    展开全文
  • Web开发常见安全问题及解决

    万次阅读 2018-05-22 22:36:38
    Web攻击动机:恶作剧;关闭Web站点,拒绝正常服务;篡改Web网页,损害企业名誉;免费浏览收费内容;盗窃用户隐私信息,例如Email;以用户身份登录执行非法操作,从而获取暴利;以此为跳板攻击企业内网其他系统;网页...

    Web攻击动机:

    • 恶作剧;
    • 关闭Web站点,拒绝正常服务;
    • 篡改Web网页,损害企业名誉;
    • 免费浏览收费内容;
    • 盗窃用户隐私信息,例如Email;
    • 以用户身份登录执行非法操作,从而获取暴利;
    • 以此为跳板攻击企业内网其他系统;
    • 网页挂木马,攻击访问网页的特定用户群;
    • 仿冒系统发布方,诱骗用户执行危险操作,例如用木马替换正常下载文件,要求用户汇款等

    1.SQL注入(SQL Injection)

    定义
    由于程序中对用户输入检查不严格,用户可以提交一段数据库查询代码,根据程序返回的结果,获得某些他想得知的数据,这就是所谓的SQL Injection,即SQL注入。
    原因分析
    其本质是对于输入检查不充分,导致SQL语句将用户提交的非法数据当作语句的一部分来执行。
    由于我们的部分WEB应用,采用Jsp+JavaBean或SSH框架,代码中会有直接写SQL(或HQL)语句,而有些SQL是用拼串实现的。
    风险
    SQL盲注:如果系统屏蔽了详细的错误信息,那么对攻击者而言就是盲注入,可能会查看、修改或删除数据库条目和表
    使用SQL注入的认证旁路:可能会绕开 Web 应用程序的认证机制

    例子:
                  

    预防措施

    • 严格限定参数类型,明确参数检验的边界,必须在服务端执行数据验证
    • 采用参数化查询的方法(推荐)
    • 内置过滤系统(本质是黑名单,很常见但是不推荐)
    • 数据库加固

    2.跨站脚本漏洞(XSS) 

    定义
      它指的是恶意攻击者往Web页面里插入恶意html代码,当用户浏览该页之时,嵌入其中Web里面的html代码会被执行,从而达到恶意用户的特殊目的。XSS属于被动式的攻击,因为其被动且不好利用,所以许多人常忽略其危害性。


    分类
    持久型XSS(Persistent),与非持久型XSS相反,它是指通过提交恶意数据到服务器,通过Web应用程序输出恶意数据输出到页面,持久型XSS多出现在Web邮箱、BBS、社区等从数据库读出数据的正常页面(比如BBS的某篇帖子中可能就含有恶意代码)
    非持久型XSS(Non-persistent),即反射型,它是指那些浏览器每次都要在参数中提交恶意数据才能触发的跨站脚本漏洞。

    例子:


    预防措施

    一.过滤:

    • 有时候过滤会导致意外的结果,例如alice’s 变成了alices。
    • 有时候需要多次过滤,例如<scrip<script>t>过滤掉<script>后还是<script>。
    • 需要注意多个过滤器的先后次序。当多个过滤器一起生效时,有可能后进行的过滤导致前面的过滤失效。例如过滤器1要过滤ABC,过滤器2要过滤DEF,那么ABDEFC在依次通过1,2过滤器后变成了ABC,这样相当于绕开过滤器1。

    二.输入编码:

    • 输入编码往往可以有全局的解决方案,从设计的角度来看,这是最佳的。
    • 一旦数据已经入库,就难以用输出编码处理。

    三.输出编码:

    • 输出编码有助于开发者细粒度控制输出,但也导致了工作量的增加。
    • 输出编码可以解决输入编码无法处理的已入库数据。

    四.用户安全加固:

    • 小心点击来源不明的URL。
    • 对浏览器进行安全加固,例如禁止ActiveX。
    • 永远不要点击自动登录信息!

    3.跨站请求伪造(XSRF )

    风险
         可能会窃取或操纵客户会话和 cookie,它们可能用于模仿合法用户,从而使黑客能够以该用户身份查看或变更用户记录以及执行事务 
    原因分析
       应用程序使用的认证方法不充分
    典型攻击方式
    •  在页面中加入一个<img>标签,浏览器就会发送一个请求,以获取其src属性引用的值。
    •  攻击者将敏感操作的URI作为src
    •  继承Cookie,以浏览者的身份作敏感访问并操作
    •  危害:在用户无意识情况下进行危险操作

    预防措施

    检查 HTTP 头部 Refer 信息
       Server端在收到请求之后,可以去检查这个头信息,只接受来自本域的请求而忽略外部域的请求
    使用一次性令牌
       每个请求都带上一个由服务器生成的随机参数。然后在服务器端核对该参数,如果和下发的随机数不同,则可以认为有人在伪造请求。因为攻击者无法知道他本次攻击的http请求需要带什么样的随机数才是有效的。
    使用验证图片
       图片验证信息很难被恶意程序在客户端识别,因此能够提高更强的保护
    判断HTTP请求类型
        采用request.getMethod()判断请求的方式是否POST
    直接获取数据
    对request再次封装,直接获取form的数据不接收URL的 ,request.getForm(“user”)

    4.文件上传漏洞

    常见的验证错误

    • 允许上传可执行文件
    • 使用客户端JS验证上传文件类型
    • 使用黑名单限制上传文件类型
    • 文件名/存储目录名可自定义
    • 文件名中特殊字符处理不当

    预防措施

    • 首先编码者需要对上传页面代码严格把关,特别是在保存文件的时候,考察可能出现的异常字符,如../,..\,空字符等。
    • 其次,对文件扩展名检查要采取“允许jpg,gif…”这样的检查,而不要采取“不允许asp…”这样的检查;
    • 最好对上传文件的目录设置不可执行,这可以通过web服务器配置加固实现。








    展开全文
  • 有关JAVA的39个文档(知识点+不为人知的问题及分析+程序员必知要点+教你如何面试+Web开发重点讲述).推荐版!!!
  • web开发常见安全问题

    千次阅读 2017-04-18 12:02:37
    指的是恶意攻击者往web页面里插入恶意脚本代码,而程序对于用户输入内容没有过滤,当用户浏览时,嵌入的脚本代码被执行,达到恶意攻击用户的目的。 分类XSS漏洞可分为反射型XSS和存储型XSS。反射型XSS是直接将恶意...
  • XSS是常见Web攻击技术之一.所谓的跨站脚本攻击指得是:恶意攻击者往Web页面里注入恶意Script代码,用户浏览这些网页时,就会执行其中的恶意代码,可对用户进行盗取cookie信息、会话劫持等各种攻击. 解决方案: (1) ...
  • WEB开发技术常见问题汇总,word文档,文件内有超链接
  • 在做web开发中,经常遇到这样的问题:已经修改完css样式或者js代码,F5刷新浏览器,发现刚修改完的代码并没有生效,这个大家都知道是缓存造成的,浏览器这样设计的目的也是为了节省用户流量,因为资源文件一般较稳定...
  • Web前端常见问题汇总

    千次阅读 2017-10-10 22:28:43
    ,进而添加一些代码,嵌入到web页面中去。使别的用户访问都会执行相应的嵌入代码。  2.1.反射型XSS攻击  原请求:http://www.test.com/message.php?send=Hello world!  攻击请求:...
  • Java web开发常见100个问题

    千次阅读 2018-09-26 20:12:45
    Java web开发常见100个问题: (1)tomcat启动超时(Server Tomcat v.. Server ... was unable to start within 45 seconds.) (2)使用Eclipse,关闭Tomcat Server,一直在Stopping       ...
  • 为什么会有兼容问题?由于市场上浏览器种类众多,而不同浏览器其内核亦不尽相同,所以各个浏览器对网页的解析就有一定出入,这也是导致浏览器兼容问题出现的主要原因,我们的网页需要在主流浏览器上正常运行,就需要...
  • 基于Python的Web开发

    万次阅读 2019-02-26 11:24:29
    下面来介绍一下基于Python语言的Web开发中几种常见Web开发框架; 1、Python语言是第四代程序设计语言,是解释性的、交互性的和面向对象的。它在Web应用和非Web应用中都发挥了重要的作用。比如Google的核心代码是...
  • Web前端面试常见问题

    千次阅读 2017-08-07 15:32:17
    备注: Rebecca Murphey 的 Baseline For Front-End ...常见问题: ● Q: 你在昨天/本周学到了什么?● Q: 编写代码的哪些方面能够使你兴奋或感兴趣?● Q: 在制作一个Web应用或Web站点的过程中,你是如何考虑他的UI
  • web常见安全漏洞

    万次阅读 2018-09-08 10:04:25
    随着Web2.0、网络社交等一系列新型的互联网产品的诞生,基于Web环境的互联网应用越来越广泛,企业信息化的过程中,越来越多的应用都架设在Web平台上。Web业务的迅速发展吸引了黑客们的强烈关注,接踵而至的就是Web...
  • Web开发常见端口

    千次阅读 2017-08-15 12:00:04
    常见端口 (1)8080端口 服务:HTTP 说明:为http服务的备用端口 (2)端口:21 服务:FTP 说明:FTP服务器所开放的端口,用于上传、下载。 (3)端口:22 服务:SSH; (4)端口:23 服务:Telnet; (5...
  • WEB开发常见的中文乱码情况及其解决方案在使用JSP时,经常会有中文显示乱码的现象,这里对常见的中文乱码的情况及其解决方案做一个汇总。一般出现中文乱码的场合有显示JSP页面,request对象获取请求参数,Servlet...
  • PYTHON WEB开发学习实录(中文高清版)

    千次下载 热门讨论 2013-03-22 21:07:20
    第1章欢迎来到Python世界 1.1 Python简介 视频教学:11分钟 1.2安装Python(Windows安装) 视频教学:8分钟 1.3使用带提示符的解释器 ...第15章Python的Web开发之Django框架应用 附录各章习题参考答案
  • 2019Java开发面试常见问题总结(重要....)

    万次阅读 多人点赞 2019-01-03 15:46:41
    最近需要面试Java开发,自己学习丢西瓜捡芝麻,学了的都忘了,所以有机会自己做个总结,摘录自各个博文以及总结。   1、JAVA的跨平台原理 JVA源码被编译会生成字节码文件,通过不同平台上下载的不同版本的JVM,...
  • 常用移动web开发框架

    千次阅读 2019-05-01 17:13:12
    纯粹的总结一下移动web开发框架,移动web开发框架有jQuery Mobile 、Sencha Touch等等,他们都来源于web开发,是成熟的框架,jQuery Mobile出自于jQuery家族,Sencha Touch来自于ExtJS。jQuery Mobile 和Sencha Touch...
  • Web开发常见的认证机制

    千次阅读 2017-03-14 18:12:41
    HTTP基本认证(HTTP Basic Auth)在HTTP中,HTTP基本认证是一种允许Web浏览器或者其他客户端在请求时提供用户名和口令形式的身份凭证的一种登录验证方式。简单而言,HTTP基本认证就是我们平时在网站中最常用的通过...
  • Web项目常见编码问题总结

    千次阅读 2017-07-05 21:07:39
    Web项目开发过程中经常遇到中文乱码的问题。一般项目都使用UTF-8编码,在项目的初始阶段都要对项目、环境的文件编码进行设置。
  • eclipse进行Javaweb开发常见问题总结

    千次阅读 2017-03-11 14:35:49
    一、eclipse中如何配置tomcat进行Javaweb程序开发1、安装tomcat具体安装教程可参考:安装教程提醒几点注意事项: ①安装tomcat前要先安装好JDK,具体安装教程上面链接里也有提供。 ②安装tomcat时,要记住安装路径...
  • python web项目开发常见步骤

    千次阅读 2017-11-06 10:02:19
    开发平台: ubuntu(macOS)(推荐) 前后端分离 开发工具: sublime text3, vim, lsof, wget, git等 代码托管: git(推荐)/svn frontend: html5, css3, jquery, nodejs, npm, bower, grunt, bootstrap等 backend: python, ...
  • WEB开发技术 知识点总结

    万次阅读 多人点赞 2018-05-11 00:10:58
    WEB开发技术 知识点总结第一章:(填空判断)1、什么是WWWWWW是World Wide Web的缩写,中文译名“万维网”。Web是Internet提供的一种服务,是基于Internet、采用Internet协议的一种体系结构。2、Web三要素:统一资源...
  • web开发框架技术有哪些?

    万次阅读 2018-11-07 16:07:30
    如果你是做Web开发的,Web框架一定会很熟悉,框架是Web架构开发中必不可少的工具,不仅可以提高开发效率,还能让开发项目更成熟,并且可以提升代码的可再用性,Web框架开发离不开相应的开发语言,以下是常用的Web...
  • java web开发常见漏洞攻击及解决办法

    千次阅读 2016-10-21 13:44:59
    1.弱口令漏洞 解决方案: 最好使用至少6位的数字、字母及特殊字符组合作为密码。数据库不要存储明文密码,应存储MD5加密后的密文,由于目前普通的MD5加密已经可以被破解,最好可以多重MD5加密。...有

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 397,890
精华内容 159,156
关键字:

web开发常见问题