H5 目前的技术曾经趋于成熟。它开发周期短开发周期短,投入和保护成本低,兼容性好。依据需要,H5能够制作文字、图形、音频、视频,因而能够用于PC网站、手机网站、微站、Web App、轻利用。而且因为最近AIGC的大火,它的制作老本变得更低。

H5的利用场景次要包含展现、营销、考察、游戏等等。

不过作为重要的挪动互联网服务载体,H5在给用户带来便当体验的同时,也让企业面临信息泄露、歹意劫持、薅羊毛等各类业务危险。

明天咱们就来看看怎么去防护H5。

常见业务危险

链接伪造危险。攻击者通过伪造的H5网页链接,入侵毁坏业务零碎乃至内网,窃取重要信息、账户明码等。

页面篡改危险。H5网页代码遭篡改复制,做成钓鱼页面,盗取用户账户明码和信息等。

信息泄露危险。H5网页被植入恶意代码,盗取访问者的账号密码、隐衷信息等。

账号破解危险。H5往往是App或小程序应用服务的延长,与平台账户体系关联,很容易成为攻击者盗取账号、破解明码的重要指标。

“薅羊毛”危险。通过H5网页举办的各类优惠活动企业次要的拓客伎俩,“薅羊毛”不仅毁坏了失常的营销规定,白白耗费大量流动资金,更无奈保障新注册用户的精准性,导致营销流动成果功亏一篑。

业务防护思路

咱们次要从业务平安的角度来进行防护,具体包含以下几个点(代码只是简略提供思路,仅供参考):

数据安全防护:因为H5业务中会波及到用户数据的收集和存储,因而必须采取紧密的数据安全防护措施,例如数据加密、数据备份、访问控制等。

  1. 数据加密示例代码
import hashlibimport base64# 数据加密函数def encrypt(data):    # 对数据进行SHA256哈希解决    sha256 = hashlib.sha256()    sha256.update(data.encode('utf-8'))    hashed_data = sha256.digest()    # 对哈希后的数据进行Base64编码解决    encoded_data = base64.b64encode(hashed_data)    # 返回加密后的数据    return encoded_data.decode('utf-8')
  1. 数据备份示例代码
import shutil# 数据备份函数def backup_data(src_path, dst_path):    # 应用shutil库的copytree函数进行数据备份    shutil.copytree(src_path, dst_path)    print('数据备份胜利')
  1. 访问控制示例代码
# 用户列表users = [{'username': 'admin', 'password': '123456'}, {'username': 'user1', 'password': 'password1'}]# 登录函数def login(username, password):    # 遍历用户列表进行登录验证    for user in users:        if user['username'] == username and user['password'] == password:            print('登录胜利')            return True    # 登录失败    print('登录失败')    return False# 访问控制装璜器def require_login(func):    def wrapper(*args, **kwargs):        # 判断用户是否登录        if 'username' in kwargs and 'password' in kwargs:            username = kwargs['username']            password = kwargs['password']            if login(username, password):                # 登录胜利,执行原函数                return func(*args, **kwargs)        # 用户未登录,返回错误信息        return '请登录后再进行操作'    return wrapper# 须要进行登录验证的函数@require_logindef secret_info():    return '这是一些机密信息'# 应用示例if __name__ == '__main__':    # 备份数据    backup_data('/path/to/data', '/path/to/backup')    # 拜访受限的函数    print(secret_info(username='admin', password='123456'))    # 拜访受限的函数(未登录)    print(secret_info())

网络安全防护:H5业务通常波及到数据传输和网络交互,因而必须采取有效的网络安全防护措施,例如SSL/TLS加密、防火墙、反向代理等。
简略给一个SSL/TLS的代码:

import socketimport ssl# 服务器地址和端口号server_address = ('localhost', 8888)# 创立socket对象sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)# 将socket包装成SSL socketssl_sock = ssl.wrap_socket(sock, ssl_version=ssl.PROTOCOL_TLSv1_2, ciphers='ECDHE-RSA-AES256-SHA384')# 连贯服务器ssl_sock.connect(server_address)# 发送数据ssl_sock.sendall('Hello, World!'.encode())# 接收数据data = ssl_sock.recv(1024)# 敞开连贯ssl_sock.close()

代码平安防护:H5业务开发过程中须要编写大量的代码,因而必须采取有效的代码平安防护措施,例如代码审计、代码加密、进攻XSS和CSRF等攻打。
挨个来看看示例代码:

  1. 代码审计
# 破绽代码def execute_sql(user_id):    sql = "SELECT * FROM users WHERE user_id='%s'" % user_id    cursor.execute(sql)    results = cursor.fetchall()    return results# 修复代码def execute_sql(user_id):    sql = "SELECT * FROM users WHERE user_id=%s"    cursor.execute(sql, (user_id,))    results = cursor.fetchall()    return results
  1. 代码加密
import py_compile# 加密代码py_compile.compile('main.py')# 运行加密后的代码import mainmain.main()
  1. 防护XSS
<!-- 原始代码 --><script>    var name = '{{ name }}';    document.write('Hello, ' + name + '!');</script><!-- 修复后的代码 --><script>    var name = '{{ name|escapejs }}';    document.write('Hello, ' + name + '!');</script>
  1. 防护CSRF
# 原始代码@app.route('/transfer_money')def transfer_money():    from_account = request.args.get('from_account')    to_account = request.args.get('to_account')    amount = request.args.get('amount')    # 转账操作# 修复后的代码@app.route('/transfer_money')def transfer_money():    from_account = request.args.get('from_account')    to_account = request.args.get('to_account')    amount = request.args.get('amount')    # 校验Referer字段    referer = request.headers.get('Referer')    if referer and 'example.com' in referer:        # 转账操作    else:        abort(403)

结语

因为H5的凋谢的网络环境、跨平台个性(H5利用能够运行在不同的操作系统和浏览器中,因而,对于黑客来说,他们能够抉择攻打不同的平台和浏览器来获取用户的信息和数据)以及H5利用的平安防护措施有余,导致H5极容易导致攻打,所以在H5的防护上,要思考诸多因素。

以上的示例仅供参考,后期的防护和前期的安全监控同样重要,因而,也必须重点关注风控这块。

以上。

业务平安产品:收费试用