2017-08-07 76 views
1

我想送一个AJAX请求到服务器仅如果字符串的长度小于200和大于5是否有可能制作前端JS?

而且支票上的客户机端规则,if声明:

if (textLen < 200 && textLen > 5) { 
    // send ajax 
} 

任何用户都可以像增加字符长度一样操作前端脚本吗?

如果是,如何?如果否,在客户端验证数据是否是最佳实践?

提供服务器限制从所有比mydomain.com

+1

是的,用户可以对他们的前端代码进行任何操作。客户端验证仅仅是为了方便;任何安全的事情都必须在服务器上完成。 –

+1

https://stackoverflow.com/a/45484708/476 – deceze

+1

@deceze HTTPS完全超出我的猜想。 OP询问在浏览器中更改变量值? –

回答

2

是它很容易可以改变客户端上的可变值等外部源post请求。只是不要依赖客户端验证。 不要假设在客户端成功完成验证是完美的。始终信任/取决于您的服务器端验证。这是最好的。

+0

喜欢你的讨论另一个答案。谢谢。 –

1

是的,任何人都可以更改客户端代码并删除验证检查。所以总是在服务器端处理验证。

+0

**如何删除**验证检查? – BenM

+0

@BenM打开调试器,删除行。 – deceze

+0

@BenM'if(valid){// reach server。}'。通过调试器工具,'valid = true'。 –

0

是的。您可以更改从服务器接收的任何代码以显示网页。在键盘上按“F12”并开始修改。

关于你放在你身上的代码是问题,我假设你希望客户端检查一个字符串的长度是否在最小和最大长度之间。顾名思义,该变量包含文本,如果是的话,修改代码:

if (textLen.length < 200 && textLen.length > 5) { 
    // send ajax 
} 

在客户端上修改代码,所以它到达服务器之前,打开你的浏览器的开发工具(F12大多数浏览器)。双击你想改变的东西。

但是,要确保东西不被服务器接受,你应该始终验证服务器端的所有内容。所以对于最大字符串长度为200和最小长度为5的要求也应该由服务器检查,然后再继续执行任何操作。当然,这与其他检查紧密相关,例如检查任何不需要的代码,空格等。

相关问题