我目前正在学习 ASP.NET MVC C# Code First。
在搭建视图或使用 Razor 语法帮助生成表单时,我注意到创建的代码将 html 表单元素名称设置为数据库中 db 表的确切名称。此外,这暴露了数据库结构和实体关系。
视图中的示例 Razor 语法
@Html.HiddenFor(model => model.Product.ProductType.Name)
生成的Html如下
<input id="Product_ProductType_Name"
name="Product.ProductType.Name"
type="hidden" value="Fruits" />
仅仅从这个生成的 html 的小片段中,系统的用户就可以知道有 2 个表和 db 中写入的字段名称:
- 产品
- 产品类别
- 名称(产品类型字段)
有没有办法隐藏它,例如放入隐藏的表前缀,例如分别asdf_
制作表名asdf_Product
和,asdf_ProductType
或者这不是必需的?
假设这是一个用户名/密码字段。潜在的黑客会确切地知道它应该尝试攻击的表的名称。
请告知我是否没有理由担心。