c# windows form,部署前的下一步是啥?

     2023-02-19     190

关键词:

【中文标题】c# windows form,部署前的下一步是啥?【英文标题】:c# windowsform , What is next step before deployment?c# windows form,部署前的下一步是什么? 【发布时间】:2020-08-14 16:21:55 【问题描述】:

刚刚在 sql 管理 Studio 中使用数据库完成了我的诊所 Winforms 程序。 我的连接是 ADO.NET 实体数据模型,我的意思是 edmx。我想问你们下一步是什么,问你们是否看到任何注射问题 以及我应该如何防止注射。我所有的代码都是 Linq,我相信 Linq 可以减少注入问题。 我的问题是三个问题:

1) 在真实服务器上部署 alaive 之前,我必须在我的 Visual 项目中的设置中进行哪些更改。 我的 winforms 项目的属性是否有任何更改?因为现在这将是生产项目。

2) 我的第二个问题是,当我添加一个新人或搜索一个人时,你是否发现我的代码中缺乏安全性?为了安全起见,我应该怎么做? 请在下面查看我的一些代码

3) (ADO.NET Entity Data Model, ADO.NET Entity Data Model)这样的大系统正常使用吗? 因为我的连接字符串在 App.config 中,它是下面这样的很长的字符串,它让我有点害怕.. ;)

<add name="ClinicEntities" connectionString="metadata=res://*/MyHealthModel.csdl|res://*/MyHealthModel.ssdl|res://*/MyHealthModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=MyComputerName;initial catalog=ClinicDb;user id=***;password=*****;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" /></connectionStrings>

这是我的一些代码: 找人时:

private void SearchPatient()

try
            
                using (ClinicEntities db = new ClinicEntities())
                
                    if(txtIdCardnr.Text != string.Empty)
                    
                        string IdCard = txtIdCardnr.Text.Trim();
                        var patId = db.Patient.Where(x => x.IdentityCardNr == IdCard).FirstOrDefault();
                        if(patId != null)
                        
                            var reservation = (from u in db.Registration
                                            join p in db.Patient on u.PatientId equals p.PatientId
                                            join ....... you got the idea 
                                            where ......  
                                            select new
                                            
                                                ReservationNr = u.ReservNr,
                                                ReservationDate = u.ReservationDate,
                                                ........
                                            

                                  ).ToList();

                            dgvReservations.DataSource =  reservation;

                        


                    

                

            
            catch (Exception ex)
            
                MessageBox.Show(ex.Message);
                Exception inner = ex.InnerException;
                while (inner != null)
                
                    MessageBox.Show(inner.Message);
                    inner = inner.InnerException;
                
            

对于添加新预订:

private async void AddReservation()
        
            try
            
                using (ClinicEntities db = new ClinicEntities())
                
                    if (IsValidated())
                     
                        Reservation pat = new Reservation();
                        pat.SymptomId = Convert.ToInt32(cmbSymptom.SelectedValue);
                        pat.SymptonDate = Convert.ToDateTime(dateTimePicker1.Value.Date);
                        pat.SymptonTime = txtTime.Text.Trim();
                        pat.Notes = txtNoteEmg.Text.Trim();
                        pat.RegisterdBy = StaffId;
                        pat.PatientId = PatientId;  
                        db.Reservation.Add(pat);
                        await db.SaveChangesAsync();


                    

                

            
            catch (Exception ex)
            
                MessageBox.Show(ex.Message);
                Exception inner = ex.InnerException;
                while (inner != null)
                
                    MessageBox.Show(inner.Message);
                    inner = inner.InnerException;
                
            
        

那么,你们看到我的代码缺乏安全性了吗?再次感谢您帮助我解决了所有三个问题。

【问题讨论】:

【参考方案1】:

*** 不是进行代码审查的地方(但有一个堆栈交换站点可用于代码审查,您的问题可能与那里有关)

1) 我不太确定服务器是如何进入这个等式的;当然,它只提供这个 winforms 应用程序供下载,就像任何其他文件一样。无需更改

2) 我在您的配置文件中看到了一个未加密的纯文本密码,但您是否关心是另一回事。可能即使用户确实使用他们找到的密码打开了本地数据库并环顾四周,他们也不会造成任何真正的损害。现在,如果该密码与您的生产服务器相同,则可能会成为更大的问题……您为进行数据库访问而编写的 LINQ 不受 SQL 注入的影响。使其负责的唯一方法是执行将用户提供的值连接到其中的原始 sql 命令

3) 我不确定 *** 是否是针对长连接字符串恐惧症寻求帮助的地方。有用;别管它(也许除了加密密码)

【讨论】:

感谢您的回复。我会将其发布在推荐的网站上。再次感谢您 这不是在代码审查中发布的说明,而是关于存在代码审查的建议,您应该仔细检查您的问题是否与他们网站的主题有关

RestKit 中 RKManagedObject 的下一步是啥

】RestKit中RKManagedObject的下一步是啥【英文标题】:what\'sthenextofRKManagedObjectinRestKitRestKit中RKManagedObject的下一步是什么【发布时间】:2015-09-1914:41:32【问题描述】:刚看了github上的tutorial,发现了一些关于CoreData的对象方法,比如fe... 查看详情

查找此异常原因的下一步是啥?

】查找此异常原因的下一步是啥?【英文标题】:Whataremynextstepsonfindingthecauseofthisexception?查找此异常原因的下一步是什么?【发布时间】:2015-08-3108:18:54【问题描述】:我对Eclipse、Java和Android编程相当陌生。我已经接管了一个And... 查看详情

从 appengine 迁移到完整 django 的下一步是啥?

】从appengine迁移到完整django的下一步是啥?【英文标题】:What\'sthenextstepsformovingfromappenginetofulldjango?从appengine迁移到完整django的下一步是什么?【发布时间】:2011-06-0517:19:46【问题描述】:我是编程新手,我一直在使用appengine来... 查看详情

使用 cx_Freeze 的下一步是啥?

】使用cx_Freeze的下一步是啥?【英文标题】:Whatismynextstepusingcx_Freeze?使用cx_Freeze的下一步是什么?【发布时间】:2012-06-1912:34:54【问题描述】:好的,我安装了python3.2并安装了cx_Freeexe4.2.3。我有一个名为Pythonstuff的文件夹。在这... 查看详情

在 vue app 中运行 npm build 以将其部署到服务器上后,下一步是啥?

】在vueapp中运行npmbuild以将其部署到服务器上后,下一步是啥?【英文标题】:Whatcanbethenextstepafterrunningnpmbuildinvueapptodeployitonserver?在vueapp中运行npmbuild以将其部署到服务器上后,下一步是什么?【发布时间】:2020-09-2804:34:53【问... 查看详情

cell.accessoryType = UITableViewCellAccessoryDe​​tailButton 下一步是啥?

】cell.accessoryType=UITableViewCellAccessoryDe​​tailButton下一步是啥?【英文标题】:cell.accessoryType=UITableViewCellAccessoryDetailButtonWHATISNEXT?cell.accessoryType=UITableViewCellAccessoryDe​​tailButton下一步是什么?【发布时间】:2014-08-0314 查看详情

下一步是啥();在这段代码中?

】下一步是啥();在这段代码中?【英文标题】:Whatisnext();inthiscode?下一步是什么();在这段代码中?【发布时间】:2013-08-2518:27:03【问题描述】:在这个Express应用程序(用于Nodejs)中有一行代码使用next();,我不明白。不知... 查看详情

Tigase:MUG 没有实现,下一步是啥?

】Tigase:MUG没有实现,下一步是啥?【英文标题】:Tigase:MUGnotimplemented,what\'snext?Tigase:MUG没有实现,下一步是什么?【发布时间】:2010-12-1011:59:02【问题描述】:我开始为iPhone/iPad开发多人游戏,我正在考虑使用Tigase作为游戏服... 查看详情

使用 libdbus-c++ 获得 DBus::Path - 下一步是啥?

】使用libdbus-c++获得DBus::Path-下一步是啥?【英文标题】:GotaDBus::Pathwithlibdbus-c++-whatnext?使用libdbus-c++获得DBus::Path-下一步是什么?【发布时间】:2013-05-0403:24:21【问题描述】:我有一个简短的测试程序,用于研究如何将D-Bus与libdb... 查看详情

学习了如何使用 HTML 和 CSS 从头开始​​制作响应式 HTML 电子邮件。下一步是啥? [关闭]

...如何使用HTML和CSS从头开始​​制作响应式HTML电子邮件。下一步是啥?[关闭]【英文标题】:LearnedhowtomakeresponsiveHTMLEmailsfromscratchusingHTML&CSS.What\'snext?[closed]学习了如何使用HTML和CSS从头开始​​制作响应式HTML电子邮件。下一步... 查看详情

r代码段显示了自定义的html表函数和示例。我的下一步是将此html表复制并粘贴到excel文件中,(代码片段)

查看详情

r代码段显示了自定义的html表函数和示例。我的下一步是将此html表复制并粘贴到excel文件中,(代码片段)

查看详情

delphi7中实现单击form1中的按钮,弹出form2并进行form2中的下一步操作?!

首先,一定要是Delphi7的编程环境,什么C/C++什么的不要来搞灰机了!!举个详细一点的例子:1.Form1中有一个Button,其Caption值为“计算面积”,单击后弹出Form2。2.在Form2中进行输入,和计算的其他操作。3.单击Form2中的“退出”But... 查看详情

上一步是硬件描述语言,下一步是fpga

上一步是硬件描述语言,下一步是FPGA。学习了硬件描述语言(Verilog或者VHDL)之后,FPGA该如何继续。世上没有捷径,每一步都得踏踏实实的走。学习FPGA也是这样,在有了硬件描述语言的基础之上,可以学习FPGA基础。学习模块的划... 查看详情

hyper-v怎么开启具体步骤是啥

...进入到“卸载程序”窗口后,点击左上角的“启动或关闭Windows功能”。3、选择进入“Windows功能”窗口后,等待一会儿,等加载好后,在“Hyper-V”文件夹前的复选框前打勾选中,打勾选中表现启用此功能,然后点击“确定”按... 查看详情

windowsserver2016部署wsus服务

wsus是微软公司推出的免费的Windows更新服务管理软件,提供了Windows部分关键更新的分发,通过此服务,可以在第一时间从微软的官网服务器获得最新的更新补丁。wsus常见的部署环境有三种:1.简单部署;2.多台wsus服务器;3.断开I... 查看详情

加固遗留 Rails 应用程序的第一步是啥?

】加固遗留Rails应用程序的第一步是啥?【英文标题】:WhatarethefirststepsinhardeningalegacyRailsapplication?加固遗留Rails应用程序的第一步是什么?【发布时间】:2015-10-3005:41:18【问题描述】:有一个生产系统已经运行了很多年,最初是... 查看详情

使用分析函数的下一步操作

】使用分析函数的下一步操作【英文标题】:Nextactionusinganalyticfunctions【发布时间】:2013-04-3013:20:38【问题描述】:为了进行同期群分析,我正在尝试获取每个客户的下一步操作(取消订阅、升级、降级...)我有一个包含以下数... 查看详情