如何防止用户更改HTML或JavaScript中的值

我试图让用户可以更改他们正在更改配置文本文本颜色和背景颜色。

我从codepen.io创建了这个DEMO

在这个演示中,您可以看到当您选中任何单选按钮时.colored-text div将自动更改。

我想只允许那种颜色: #fa743e,#323949,#0000,#d8dbdf 。 但问题出现在这里,如果用户使用开发人员控制台将#fa743e更改为#fa743e ,并在数据库中更改#fa743e颜色。 这不好。

这是forms:

 

我正在使用这个ajax post方法:

 $.ajax({ type: "POST", url: 'change_theme.php', data: {change-text-color:$('input[name="change-text-color"]:checked').val(),change-background-color:$('input[name="change-background-color"]:checked').val()}, beforeSend: function(){$("#posting").html(''); }, success: function(html) { $('.tduzalani, .temayi-degistir-alani').animate({'opacity':'0'}, 300, 'linear', function(){ $('.tduzalani, .temayi-degistir-alani').css('display', 'none');}); swal({ title: "Theme was changing succuesfully!", text: ":)", timer: 5000 }); } }); 

这是change_theme.php

 change_theme($uid,$text-color,$background-color); } ?> 

底线:永远不要相信客户的任何东西。 客户端可以随意更改任何内容,甚至可以编辑发往服务器的数据。 如果你想确保他们不能做某事,那么你必须对他们唯一无法改变的事情(服务器)进行检查。 这是一个很好的指南,解释了我提到的好处。

要回答以下评论:

Javascript

 $.ajax({ type: "POST", url: 'change_theme.php', data: {change-text-color:$('input[name="change-text-color"]:checked').val(),change-background-color:$('input[name="change-background-color"]:checked').val()}, beforeSend: function(){$("#posting").html(''); }, success: function(html) { if ( html == "1" ) { $('.tduzalani, .temayi-degistir-alani').animate({'opacity':'0'}, 300, 'linear', function(){ $('.tduzalani, .temayi-degistir-alani').css('display', 'none');}); swal({ title: "Theme was changing succuesfully!", text: ":)", timer: 5000 }); } else { alert('There was an error saving this!') } } }); 

PHP

 change_theme($uid,$text-color,$background-color); echo 1; } else { echo 0; } exit; ?> 

您无法阻止用户更改控制台中的内容。 所有前端代码(HTML,JS,CSS)都被发送到浏览器,然后任何人都可以查看它并根据自己的意愿进行更改。 如果您真的想限制允许的颜色,请进行服务器端检查。

在服务器端代码change_theme.php中,您应该有两个用于文本颜色和背景颜色的单独数组。

 change_theme($uid,$text-color,$background-color); } ?> 

希望这对你有所帮助。