如何保护Django模板以通过Web浏览器的检查元素功能更改其值(HTML和Javascript)?

巴拉斯·巴拉塔(Paras Botadra)

我正在Django网站上工作,我需要在该网站上显示公司的某些服务,并且用户可以从页面上提供的单选按钮中选择服务的类型。该不同类型服务的价格正在从数据库中获取。一旦用户为任何类型的服务选择单选按钮,该服务的价格就会使用javascript复制到HTML标签,并且通过javascript计算所选服务总数的总和,并显示到称为total的不同标签上。现在,我要做的是,单击按钮后,我需要将用户选择和应付款总额存储到视图中的会话中。我以为可以通过使用JavaScript的ajax调用来做到这一点,但是如果用户更改/更改所有正在客户端计算的标签的值,与使用ajax调用相比,使用inspect元素功能将发送修改后的数据,因此这似乎是不安全的方法。所以任何人都可以指导我如何解决这个问题。

以下是我的tmeplate的代码:

<table class="LeftOffers">
    <tr><th style="width:450px;">Packages</th><th>Small</th><th>Medium</th><th>Large</th></tr>
    {%for package in packages%}
        <tr><td><label id="package{{forloop.counter}}">{{package.PackageName}}</label><br>{{package.PackageDesc}}</td>
        <td> <label><input name="package{{forloop.counter}}" id="small" value="{{package.SmallPrice}}" onchange="updateTotal(name)" type="radio">Rs {{package.SmallPrice}}</label></td>
        <td> <label><input name="package{{forloop.counter}}" id="med" value="{{package.MedPrice}}" onchange="updateTotal(name)" type="radio">Rs {{package.MedPrice}}</label></td>
        <td> <label><input name="package{{forloop.counter}}" id="large" value="{{package.LargePrice}}" onchange="updateTotal(name)" type="radio">Rs {{package.LargePrice}}</label></td>
    </tr>
    {%endfor%}
</table>

这里的服务是包,小,中和大是包的不同类型。

以下是用于显示某些标签上所选商品的价格并计算应付总金额的Javascript:

function updateTotal(names) {
    pkgname = document.getElementById(names).innerHTML;
    rowlbl = "row_"+names;
    namelbl = "label_"+names;
    prclbl = "optionsPrice_"+names;
    btnid = "button_"+names;
    document.getElementById(rowlbl).style.display='inline';
    document.getElementById(btnid).style.display='inline';
    document.getElementById(namelbl).innerHTML = pkgname;
    document.getElementById(prclbl).innerHTML = "Rs "+ $("input[name="+names+"]:checked").val();
    totalPrice=0;
    {% for package in packages %}

        lblname = "optionsPrice_package{{forloop.counter}}";
        lblprc = document.getElementById(lblname).innerHTML;
        if (lblprc != ""){
            lblprc = lblprc.replace("Rs ","");
        } else{
            lblprc = "0";
        }
        totalPrice = totalPrice + parseInt(lblprc); 
    {% endfor %}
document.getElementById('totalPrice').innerHTML = "Rs " + totalPrice.toString();
}

如果我在这里缺少任何东西,请告诉我。

还要附上我的页面的屏幕截图,以供参考:

截屏

丹尼尔·罗斯曼(Daniel Roseman)

这是XY问题的经典例子; 您选择的解决方案将计算的数据存储在字段中,这会遇到安全问题,因此您询问如何避免这种情况,而不是意识到此解决方案是不合适的。

您根本不应该从表单中发送总计。随意在JS中进行计算以显示给用户,但不要发送它。您已经将所选软件包的详细信息发布到后端了;使用数据而不是过帐的总计来计算实际应付金额。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类常见问题

如何使用Safari浏览器检查元素

来自分类Dev

Web浏览器上的java的String var中javascript警报功能如何工作

来自分类Dev

在浏览器中使用javascript通过类设置html输入元素的值?

来自分类Dev

通过JavaScript更改了文本和光标样式:浏览器兼容性问题

来自分类Dev

Web浏览器如何区分HTML5和HTML4?

来自分类Dev

流星-如何从浏览器JavaScript控制台检查特定模板的数据上下文?

来自分类Dev

如何检查浏览器是否支持css值?

来自分类Dev

Selenium-WebDriver如何使用javascript和firefox浏览器突出显示元素

来自分类Dev

Javascript循环,异步功能和无头浏览器

来自分类Dev

如何使用ODS HTML命令更改Web浏览器选项卡中的“ SAS输出”?

来自分类Dev

如何通过单击浏览器中的“检查元素”来获取由JavaScript生成的html?

来自分类Dev

如何通过Web扩展弹出窗口JavaScript知道浏览器是Chrome还是Firefox?

来自分类Dev

如何使用浏览器的Confirm()和Angular模板语句?

来自分类Dev

浏览器扩展:加载元素时如何执行功能

来自分类Dev

如何将检查的浏览器元素设置为此

来自分类Dev

如何通过Firefox浏览器修改某些网站功能?

来自分类Dev

通过命令行更改Web浏览器的url?

来自分类Dev

在浏览器中使用javascript通过类设置html输入元素的值?

来自分类Dev

通过JavaScript更改了文本和光标样式:浏览器兼容性问题

来自分类Dev

火狐浏览器。允许通过javascript访问iframe元素

来自分类Dev

如何检查浏览器的“ html”或“ body”处是否溢出?

来自分类Dev

Chrome浏览器中的“检查元素”功能是什么?

来自分类Dev

如何找到已加载到浏览器元素检查器中的本地html文件?

来自分类Dev

浏览器中的javascript和td元素事件属性

来自分类Dev

VB.NET Web浏览器:与检查浏览器中的元素相比,DocumentText的HTML不正确

来自分类Dev

更改浏览器比例时使用html元素宽度

来自分类Dev

通过javascript更改浏览器的默认位置下载?

来自分类Dev

如何通过javascript检查浏览器的在线/离线状态?

来自分类Dev

javascript对html进行更改后如何获取html源代码(没有浏览器)

Related 相关文章

  1. 1

    如何使用Safari浏览器检查元素

  2. 2

    Web浏览器上的java的String var中javascript警报功能如何工作

  3. 3

    在浏览器中使用javascript通过类设置html输入元素的值?

  4. 4

    通过JavaScript更改了文本和光标样式:浏览器兼容性问题

  5. 5

    Web浏览器如何区分HTML5和HTML4?

  6. 6

    流星-如何从浏览器JavaScript控制台检查特定模板的数据上下文?

  7. 7

    如何检查浏览器是否支持css值?

  8. 8

    Selenium-WebDriver如何使用javascript和firefox浏览器突出显示元素

  9. 9

    Javascript循环,异步功能和无头浏览器

  10. 10

    如何使用ODS HTML命令更改Web浏览器选项卡中的“ SAS输出”?

  11. 11

    如何通过单击浏览器中的“检查元素”来获取由JavaScript生成的html?

  12. 12

    如何通过Web扩展弹出窗口JavaScript知道浏览器是Chrome还是Firefox?

  13. 13

    如何使用浏览器的Confirm()和Angular模板语句?

  14. 14

    浏览器扩展:加载元素时如何执行功能

  15. 15

    如何将检查的浏览器元素设置为此

  16. 16

    如何通过Firefox浏览器修改某些网站功能?

  17. 17

    通过命令行更改Web浏览器的url?

  18. 18

    在浏览器中使用javascript通过类设置html输入元素的值?

  19. 19

    通过JavaScript更改了文本和光标样式:浏览器兼容性问题

  20. 20

    火狐浏览器。允许通过javascript访问iframe元素

  21. 21

    如何检查浏览器的“ html”或“ body”处是否溢出?

  22. 22

    Chrome浏览器中的“检查元素”功能是什么?

  23. 23

    如何找到已加载到浏览器元素检查器中的本地html文件?

  24. 24

    浏览器中的javascript和td元素事件属性

  25. 25

    VB.NET Web浏览器:与检查浏览器中的元素相比,DocumentText的HTML不正确

  26. 26

    更改浏览器比例时使用html元素宽度

  27. 27

    通过javascript更改浏览器的默认位置下载?

  28. 28

    如何通过javascript检查浏览器的在线/离线状态?

  29. 29

    javascript对html进行更改后如何获取html源代码(没有浏览器)

热门标签

归档